diff options
| author | Adam Soltys <[email protected]> | 2026-09-27 15:07:31 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-09-27 15:07:31 -0700 |
| commit | 31fea2d1e463424387828163bda9facc2fee8c0d (patch) | |
| tree | 9af8a89cbc44519d5a37989f402381381a056748 /src/app.js | |
| parent | 9fdbc82fecf17cefed08e8fe1cfee03546d41c5e (diff) | |
| download | coinosv3-31fea2d1e463424387828163bda9facc2fee8c0d.tar.gz coinosv3-31fea2d1e463424387828163bda9facc2fee8c0d.zip | |
Three fixes: orphaned pending coins settle with the server; a saved start screen no longer shadows a restored wallet; stop() no longer throws.
Reconcile now asks the server about a 'pending' coin no live action or
standing renewal order holds: spendable again, or gone. Thirty zap-sized
coins another device had already spent counted in a balance for weeks.
A nav saved by a page with no wallet (the start screen) was restored over a
wallet that had since been saved to the device, painting the start page.
messages.stop() referenced feedAt, which no longer exists, so the rest of the
teardown never ran on an account switch.
Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_01VhUKyXKtsJ67QAFfb7QR9D
Diffstat (limited to 'src/app.js')
| -rw-r--r-- | src/app.js | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -826,6 +826,10 @@ function restoreNavFromHistory(renderNow = true) { const nav = BOOT_NAV; if (!nav || ui.screen !== 'wallet') return; bootPending = false; + // The page that saved this nav may have had no wallet (the start screen, + // the vault prompt); with an account open now, those screens are stale. + // Restoring one painted the start page over a perfectly good wallet. + if (['unlock', 'vault'].includes(nav.screen) && activeAccount()) nav.screen = 'wallet'; for (const f of NAV_FIELDS) if (f in nav) ui[f] = f === 'profEdit' && nav[f] ? structuredClone(nav[f]) : nav[f]; ui.lightbox = null; nav.lightbox = null; // an object URL doesn't survive a reload navStack = [nav]; |
