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) <noreply@anthropic.com>
This commit is contained in:
@@ -682,6 +682,7 @@ class AppController:
|
|||||||
"transcription_count": len(self.transcriptions),
|
"transcription_count": len(self.transcriptions),
|
||||||
"remote_mode": remote_mode,
|
"remote_mode": remote_mode,
|
||||||
"server_sync_enabled": self.config.get('server_sync.enabled', False),
|
"server_sync_enabled": self.config.get('server_sync.enabled', False),
|
||||||
|
"is_cloud_only": self.is_cloud_only,
|
||||||
}
|
}
|
||||||
|
|
||||||
def get_audio_devices(self) -> list[dict]:
|
def get_audio_devices(self) -> list[dict]:
|
||||||
|
|||||||
@@ -453,6 +453,7 @@
|
|||||||
/>
|
/>
|
||||||
Managed Service
|
Managed Service
|
||||||
</label>
|
</label>
|
||||||
|
{#if !backendStore.isCloudOnly}
|
||||||
<label>
|
<label>
|
||||||
<input
|
<input
|
||||||
type="radio"
|
type="radio"
|
||||||
@@ -462,6 +463,7 @@
|
|||||||
/>
|
/>
|
||||||
Local (Whisper)
|
Local (Whisper)
|
||||||
</label>
|
</label>
|
||||||
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
{#if remoteMode === "byok"}
|
{#if remoteMode === "byok"}
|
||||||
<div class="field">
|
<div class="field">
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ interface BackendState {
|
|||||||
wsConnection: WebSocket | null;
|
wsConnection: WebSocket | null;
|
||||||
version: string;
|
version: string;
|
||||||
lastError: string;
|
lastError: string;
|
||||||
|
isCloudOnly: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
let state = $state<BackendState>({
|
let state = $state<BackendState>({
|
||||||
@@ -30,6 +31,7 @@ let state = $state<BackendState>({
|
|||||||
wsConnection: null,
|
wsConnection: null,
|
||||||
version: "1.4.0",
|
version: "1.4.0",
|
||||||
lastError: "",
|
lastError: "",
|
||||||
|
isCloudOnly: false,
|
||||||
});
|
});
|
||||||
|
|
||||||
let reconnectTimer: ReturnType<typeof setTimeout> | null = null;
|
let reconnectTimer: ReturnType<typeof setTimeout> | null = null;
|
||||||
@@ -72,6 +74,9 @@ async function pollStatus() {
|
|||||||
if (data.version) {
|
if (data.version) {
|
||||||
state.version = data.version;
|
state.version = data.version;
|
||||||
}
|
}
|
||||||
|
if (data.is_cloud_only !== undefined) {
|
||||||
|
state.isCloudOnly = data.is_cloud_only;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch {
|
} catch {
|
||||||
// API not ready yet, will retry
|
// API not ready yet, will retry
|
||||||
@@ -285,6 +290,9 @@ export const backendStore = {
|
|||||||
get lastError() {
|
get lastError() {
|
||||||
return state.lastError;
|
return state.lastError;
|
||||||
},
|
},
|
||||||
|
get isCloudOnly() {
|
||||||
|
return state.isCloudOnly;
|
||||||
|
},
|
||||||
get apiBaseUrl() {
|
get apiBaseUrl() {
|
||||||
return `http://localhost:${state.port}`;
|
return `http://localhost:${state.port}`;
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user