fix(onboarding): seed screen's lock stays steady through silent retries
Demo images / Build & push demo images (push) Successful in 3m42s

The catch block dropped `loading` before branching, so every failed poll
unmounted the lock icon and status text for the 4s retry gap — the screen
flashed in and out on a live install test (zaza-optiplex, 2026-08-09).
`loading` now stays true across isServerStartingError retries; only success
or a genuine failure dismisses the waiting state.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
archipelago
2026-08-10 08:53:15 -04:00
co-authored by Claude Fable 5
parent 7fbdabf136
commit c3b532eaf4
@@ -259,9 +259,11 @@ async function generateSeed() {
loading.value = false
waitingForServer.value = false
} catch (err) {
loading.value = false
if (isServerStartingError(err)) {
// Backend not ready yet — keep waiting, retry silently.
// Backend not ready yet — keep waiting, retry silently. `loading` stays
// true through the whole retry loop: dropping it here unmounts the lock
// icon and status text for the 4s between attempts, which reads as the
// screen flashing in and out (reported on a live install test).
if (!waitingForServer.value) {
waitingForServer.value = true
startElapsedTimer()
@@ -270,6 +272,7 @@ async function generateSeed() {
} else {
// Genuine failure — stop the silent loop and surface it with a manual retry.
stopTimers()
loading.value = false
waitingForServer.value = false
errorMessage.value = err instanceof Error ? err.message : 'Failed to generate seed'
}