From 2f9cd56153401d9e4abaaf04a3dbcfb87d9eee7b Mon Sep 17 00:00:00 2001 From: esdrasrenan Date: Fri, 12 Dec 2025 21:36:49 -0300 Subject: [PATCH] fix(desktop): corrige autostart do Raven no Windows --- apps/desktop/src-tauri/build.rs | 2 +- apps/desktop/src-tauri/src/lib.rs | 56 +++++++++++++++---------------- 2 files changed, 29 insertions(+), 29 deletions(-) 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}"); } } }