Repository navigation
fix(profiles): save local voices without internet connectivity - #2901
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
|
[Medium impact] The PR appears safe to merge; no blocking issue remains.
|
BichengWang
left a comment
There was a problem hiding this comment.
Reviewed a10f350a34831371d0be9a5a575a4143d17a6117 against 06537266551c0174ec8f62d05eb1dfef8bca8317; no blocking correctness findings in this scope.
I reproduced both local-save cases (ready and unresponsive) stalling after an offline event with the base hook, plus an online event incorrectly bypassing startup gating. All three regressions fail against the base implementation and pass at this head. I substituted only the base hook through a temporary Vite transform, keeping the PR tests and dependencies identical.
The earlier remote-connectivity finding is addressed: remote saves remain queued while disconnected, a pushed ready status cannot override that disconnection, and reconnecting during a crash does not resume work. Switching back to a local backend while offline also restores availability. The supervisor supplies remote from its active connection, and the shared reachability helper still permits a live-but-busy backend.
Validation: 69 tests pass across backend status, profile hooks, reference transcription, backend gating, and clone profile saving; Electron main/renderer TypeScript checks pass. Tests ran with Node 24, HF_HUB_OFFLINE=1, and an empty HF cache. The default local Node 26 run hit a jsdom/localStorage incompatibility in profile tests; rerunning on Node 24 resolved it without source changes.
This validates renderer policy and mocked transport behavior; I did not disconnect a packaged desktop app or run Windows/Linux installers. The upstream backend/frontend CI job is still pending, so this review does not establish merge readiness.
Summary
Saving a cloned voice can pause before POST /profiles when internet disconnects, even though the local backend is healthy. Let supervisor readiness govern local desktop API availability while remote backends also require browser connectivity. This closes a separate frontend gap from #2583's backend/model-loading fixes.
Changes
Type
Testing
Checklist
Release cadence
Continuous-to-main; no version bump or release publication. The change becomes part of rolling main and Docker latest after merge; desktop release publication follows the release checklist.