From f0b5890ebaf7fb06ef9a7ae3ae19e5d99e845d84 Mon Sep 17 00:00:00 2001 From: Developer Date: Fri, 10 Apr 2026 19:24:01 -0700 Subject: [PATCH] Hide Local (Whisper) mode option when using cloud-only sidecar - Expose is_cloud_only flag in /api/status response - Add isCloudOnly to backend store state - Conditionally hide Local (Whisper) radio button in Settings Co-Authored-By: Claude Opus 4.6 (1M context) --- backend/app_controller.py | 1 + src/lib/components/Settings.svelte | 2 ++ src/lib/stores/backend.svelte.ts | 8 ++++++++ 3 files changed, 11 insertions(+) diff --git a/backend/app_controller.py b/backend/app_controller.py index d5265b1..77b637d 100644 --- a/backend/app_controller.py +++ b/backend/app_controller.py @@ -682,6 +682,7 @@ class AppController: "transcription_count": len(self.transcriptions), "remote_mode": remote_mode, "server_sync_enabled": self.config.get('server_sync.enabled', False), + "is_cloud_only": self.is_cloud_only, } def get_audio_devices(self) -> list[dict]: diff --git a/src/lib/components/Settings.svelte b/src/lib/components/Settings.svelte index be8c103..b7e47f3 100644 --- a/src/lib/components/Settings.svelte +++ b/src/lib/components/Settings.svelte @@ -453,6 +453,7 @@ /> Managed Service + {#if !backendStore.isCloudOnly} + {/if} {#if remoteMode === "byok"}
diff --git a/src/lib/stores/backend.svelte.ts b/src/lib/stores/backend.svelte.ts index 12adf57..f196227 100644 --- a/src/lib/stores/backend.svelte.ts +++ b/src/lib/stores/backend.svelte.ts @@ -19,6 +19,7 @@ interface BackendState { wsConnection: WebSocket | null; version: string; lastError: string; + isCloudOnly: boolean; } let state = $state({ @@ -30,6 +31,7 @@ let state = $state({ wsConnection: null, version: "1.4.0", lastError: "", + isCloudOnly: false, }); let reconnectTimer: ReturnType | null = null; @@ -72,6 +74,9 @@ async function pollStatus() { if (data.version) { state.version = data.version; } + if (data.is_cloud_only !== undefined) { + state.isCloudOnly = data.is_cloud_only; + } } } catch { // API not ready yet, will retry @@ -285,6 +290,9 @@ export const backendStore = { get lastError() { return state.lastError; }, + get isCloudOnly() { + return state.isCloudOnly; + }, get apiBaseUrl() { return `http://localhost:${state.port}`; },