diff --git a/desktop/src-tauri/Cargo.lock b/desktop/src-tauri/Cargo.lock index e4ba4009..3b4237b2 100644 --- a/desktop/src-tauri/Cargo.lock +++ b/desktop/src-tauri/Cargo.lock @@ -485,6 +485,7 @@ dependencies = [ "tauri-plugin-notification", "tauri-plugin-process", "tauri-plugin-shell", + "tauri-plugin-single-instance", "tauri-plugin-updater", "tauri-runtime", "tauri-runtime-wry", @@ -4386,6 +4387,21 @@ dependencies = [ "tokio", ] +[[package]] +name = "tauri-plugin-single-instance" +version = "2.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c8f29386f5e9fdc699182388a33ee80a56de436d91b67459e86afef426282af" +dependencies = [ + "serde", + "serde_json", + "tauri", + "thiserror 2.0.18", + "tracing", + "windows-sys 0.60.2", + "zbus", +] + [[package]] name = "tauri-plugin-updater" version = "2.10.1" diff --git a/desktop/src-tauri/Cargo.toml b/desktop/src-tauri/Cargo.toml index 96e0dcd7..5af0ed59 100644 --- a/desktop/src-tauri/Cargo.toml +++ b/desktop/src-tauri/Cargo.toml @@ -23,3 +23,4 @@ serde_json = "1" anyhow = "1.0.102" portable-pty = "0.9.0" tauri-plugin-notification = "2" +tauri-plugin-single-instance = "2" diff --git a/desktop/src-tauri/src/lib.rs b/desktop/src-tauri/src/lib.rs index abc6a5ba..743c19c3 100644 --- a/desktop/src-tauri/src/lib.rs +++ b/desktop/src-tauri/src/lib.rs @@ -1487,6 +1487,10 @@ mod tests { #[cfg_attr(mobile, tauri::mobile_entry_point)] pub fn run() { let builder = tauri::Builder::default() + // Keep this first so duplicate launches are stopped before sidecars start. + .plugin(tauri_plugin_single_instance::init(|app, _args, _cwd| { + show_main_window(app); + })) .manage(ServerState::default()) .manage(AdapterState::default()) .manage(TerminalState::default())