From ec8922672caf0974b5bcbc20f290ad24be761029 Mon Sep 17 00:00:00 2001 From: Developer Date: Wed, 8 Apr 2026 07:25:55 -0700 Subject: [PATCH] Fix Stop Transcription button not updating after click After calling POST /api/stop, the button stayed on "Stop Transcription" because the state update depended on the WebSocket broadcast which can be delayed or missed (event loop threading issue). Fix: poll GET /api/status immediately after start/stop API calls to update the UI state directly, rather than waiting for the WebSocket. Co-Authored-By: Claude Opus 4.6 (1M context) --- src/lib/components/Controls.svelte | 3 +++ src/lib/stores/backend.svelte.ts | 1 + 2 files changed, 4 insertions(+) diff --git a/src/lib/components/Controls.svelte b/src/lib/components/Controls.svelte index d3679eb..0a52ad8 100644 --- a/src/lib/components/Controls.svelte +++ b/src/lib/components/Controls.svelte @@ -17,6 +17,9 @@ } else { await backendStore.apiPost("/api/start"); } + // Poll status to update UI immediately instead of waiting + // for WebSocket broadcast (which can be delayed or missed) + await backendStore.pollStatus(); } catch (err) { console.error("Failed to toggle transcription:", err); } finally { diff --git a/src/lib/stores/backend.svelte.ts b/src/lib/stores/backend.svelte.ts index 4939b0b..12adf57 100644 --- a/src/lib/stores/backend.svelte.ts +++ b/src/lib/stores/backend.svelte.ts @@ -302,6 +302,7 @@ export const backendStore = { setPort, connect: connectWebSocket, disconnect, + pollStatus, apiUrl, apiFetch, apiGet,