diff --git a/apps/desktop/src-tauri/build.rs b/apps/desktop/src-tauri/build.rs
index 4ecbfef..0dfb1ae 100644
--- a/apps/desktop/src-tauri/build.rs
+++ b/apps/desktop/src-tauri/build.rs
@@ -17,7 +17,7 @@ fn main() {
-
+
diff --git a/apps/desktop/src-tauri/src/lib.rs b/apps/desktop/src-tauri/src/lib.rs
index 099d986..e58bec3 100644
--- a/apps/desktop/src-tauri/src/lib.rs
+++ b/apps/desktop/src-tauri/src/lib.rs
@@ -478,8 +478,14 @@ pub fn run() {
#[cfg(target_os = "windows")]
{
+ let start_in_background = std::env::args().any(|arg| arg == "--background");
setup_raven_autostart();
setup_tray(&app.handle())?;
+ if start_in_background {
+ if let Some(win) = app.get_webview_window("main") {
+ let _ = win.hide();
+ }
+ }
// Tenta iniciar o agente e chat em background se houver credenciais salvas
let app_handle = app.handle().clone();
@@ -541,38 +547,32 @@ fn setup_raven_autostart() {
let hkcu = RegKey::predef(HKEY_CURRENT_USER);
- match hkcu.open_subkey_with_flags(
- r"Software\Microsoft\Windows\CurrentVersion\Run",
- KEY_SET_VALUE | KEY_READ,
- ) {
- Ok(key) => {
- match key.set_value("Raven", &value) {
- Ok(()) => {
- log_info!("Auto-start configurado: {value}");
+ let key = match hkcu.create_subkey(r"Software\Microsoft\Windows\CurrentVersion\Run") {
+ Ok((key, _)) => key,
+ Err(e) => {
+ log_error!("Falha ao criar/abrir chave de registro Run: {e}");
+ return;
+ }
+ };
- // Valida que foi salvo corretamente
- match key.get_value::("Raven") {
- Ok(saved) => {
- if saved == value {
- log_info!("Auto-start validado: entrada existe no registro");
- } else {
- log_warn!(
- "Auto-start: valor difere. Esperado: {value}, Salvo: {saved}"
- );
- }
- }
- Err(e) => {
- log_warn!("Auto-start: nao foi possivel validar entrada: {e}");
- }
- }
- }
- Err(e) => {
- log_error!("Falha ao definir valor de auto-start no registro: {e}");
- }
+ if let Err(e) = key.set_value("Raven", &value) {
+ log_error!("Falha ao definir valor de auto-start no registro: {e}");
+ return;
+ }
+
+ log_info!("Auto-start configurado: {value}");
+
+ // Valida que foi salvo corretamente
+ match key.get_value::("Raven") {
+ Ok(saved) => {
+ if saved == value {
+ log_info!("Auto-start validado: entrada existe no registro");
+ } else {
+ log_warn!("Auto-start: valor difere. Esperado: {value}, Salvo: {saved}");
}
}
Err(e) => {
- log_error!("Falha ao abrir chave de registro Run: {e}");
+ log_warn!("Auto-start: nao foi possivel validar entrada: {e}");
}
}
}