From 4b88871a9babd43984dbdd69ea07715b3af01978 Mon Sep 17 00:00:00 2001 From: Developer Date: Tue, 7 Apr 2026 08:54:00 -0700 Subject: [PATCH] Add sidecar update check on startup On launch, after confirming the sidecar is installed, the app now checks for a newer sidecar version via the Gitea API. If an update is available, shows a prompt with "Update Now" or "Skip": - Update Now: shows the SidecarSetup download screen - Skip: launches the existing sidecar version The update check is non-blocking -- if it fails (no internet, API error), the app silently proceeds with the current version. Co-Authored-By: Claude Opus 4.6 (1M context) --- src/App.svelte | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) 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}