Repository navigation
fix(app): run local API calls while the browser reports offline - #1208
Open
vincentfranstyo wants to merge 2 commits into
Open
vincentfranstyo wants to merge 2 commits into
vincentfranstyo wants to merge 2 commits into
Conversation
TanStack Query's default networkMode ('online') pauses every new fetch and
mutation while navigator.onLine is false. The backend is a local sidecar on
127.0.0.1, so with Wi-Fi off the Generate button spun forever and POST
/generate was only sent once the network came back (jamiepine#1085).
Set networkMode: 'always' for queries and mutations on the shared
QueryClient, and make the Tauri and web entry points use that client
instead of their own copies. As a side effect, serverStore's
invalidateQueries() on server-URL change now hits the client the app
actually renders with in those builds.
Fixes jamiepine#1085
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Biome's organizeImports flagged these blocks; the previous commit rewrote them, so fix the ordering here instead of leaving a known failure behind. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
doublesharp
added a commit
to doublesharp/voicebox-ds
that referenced
this pull request
Oct 29, 2026
Use the shared QueryClient for offline requests, preserve custom server URLs through startup and migration, retain capture decode diagnostics, preserve refinement language, accept supported STT languages, and explain LuxTTS short-input errors. Adapt upstream PRs jamiepine#1208, jamiepine#1204, jamiepine#1219, jamiepine#1218, jamiepine#1198, jamiepine#1199, jamiepine#1220 and jamiepine#1180; retain remote reconnect refreshes and correctly migrate the legacy bundled port. Wait for the preview output context to resume before playing. Cancel superseded starts and release preview nodes/object URLs on replacement, completion, failure and unmount. Add CI regressions for the upstream integration and preview lifecycle. Validation: 292 frontend tests on this candidate; 414 frontend tests with the working UI changes; 53 backend tests; app/web/Tauri frontend typechecks and both frontend builds. Independent review accepted the playback change. Native first-click/autoplay, acoustic output, packaging and model quality remain unverified. Co-authored-by: vincentfranstyo <66989751+vincentfranstyo@users.noreply.github.com> Co-authored-by: maxazure <405711+maxazure@users.noreply.github.com> Co-authored-by: FelixKruger <262215022+FelixKruger@users.noreply.github.com> Co-authored-by: Tony25032 <141424750+Tony25032@users.noreply.github.com> Co-authored-by: mvoloch <274143174+mvoloch@users.noreply.github.com> Co-authored-by: Lvigentini <11659311+Lvigentini@users.noreply.github.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
With Wi-Fi off, pressing Generate spun forever and the backend never received
POST /generate; the request went out the moment the network came back. TanStack Query pauses every new request while the browser reports offline, but Voicebox's backend is a local sidecar that never needed the network. Local API calls now run regardless of that flag.Fixes #1085
Red box: the Generate button after one click while the page reports offline. Before: stuck spinner and no
POST /generate. After: the request was sent and the form reset.Try it: 1. Start the app with a cached model. 2. Turn Wi-Fi off (or run
window.dispatchEvent(new Event('offline'))in the devtools console). 3. Click Generate. The generation starts instead of spinning.Note: The Tauri and web entry points each built their own
QueryClientwith a copy of the app's defaults, so a fix to the shared client alone would not have reached the desktop app. Both now import the shared one. Side effect: the server-URL change handler already invalidated the shared client; in the desktop and web builds that was a different instance from the one rendering, so it was a no-op there. It now works.Trade-off for remote-server mode (a non-loopback server URL, or the Docker web UI): with
networkMode: 'always'a request made while the browser reports offline is sent at once and fails with a fetch error (then one retry) instead of pausing and resuming when the network returns, and TanStack'srefetchOnReconnectis off, so a query that failed offline waits for its stale time or interval rather than refetching on reconnect. Fail-fast with a visible error seemed better than a silent spinner in both modes; scoping the mode per server URL is possible if you would rather keep the pause for remote servers.Tests and plan check
@tanstack/react-query5.90.20:offlineevent, clicked Generate:offlineevent alone is what flips TanStack's online manager, matching the reporter's situation.tscfor app and web: clean.vite buildfor the Tauri frontend: clean. Biome clean on the three touched files (the two entry points had pre-existing import-order errors that the second commit fixes, since this PR rewrote those blocks).grep 'new QueryClient'finds one site.offlineon Wi-Fi off (the reporter's symptom implies it does). Linux host, no Tauri desktop run.🤖 Generated with Claude Code using the ship-pr workflow