diff --git a/src/App.svelte b/src/App.svelte index faae333..7ba9acb 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -9,11 +9,12 @@ import { backendStore } from "$lib/stores/backend"; import { configStore } from "$lib/stores/config"; - type SidecarState = "checking" | "needs_setup" | "starting" | "connected"; + type SidecarState = "checking" | "needs_setup" | "update_available" | "starting" | "connected"; let showSettings = $state(false); let sidecarState = $state("checking"); let debugLog = $state(""); + let availableUpdate = $state(""); let obsDisplayUrl = $derived(backendStore.obsUrl); let syncDisplayUrl = $derived(backendStore.syncUrl); @@ -53,6 +54,20 @@ return; } + // Check for sidecar updates before launching + try { + log("Checking for sidecar updates..."); + const update = await invoke("check_sidecar_update"); + if (update) { + log(`Sidecar update available: ${update}`); + availableUpdate = update; + sidecarState = "update_available"; + return; + } + } catch (err) { + log(`Update check failed (non-fatal): ${err}`); + } + await launchSidecar(); } catch (err) { // Not running in Tauri (browser dev mode) - skip sidecar check @@ -118,6 +133,26 @@ {:else if sidecarState === "needs_setup"} +{:else if sidecarState === "update_available"} +
+
+

Sidecar Update Available

+

+ A new version of the transcription engine is available ({availableUpdate}). +

+
+ + +
+
+
+ {:else if !isConnected}