Found by a deployability verification of next at 75a5fa9, observed in a real browser.
If storage becomes unreadable while the popup is already open, the popup keeps rendering the stale profile — view-main with the old balance — instead of moving to the recovery screen added by #311. Reopening the popup recovers correctly.
Benign as it stands: nothing can be signed without a password, and the stale view is read-only. But it is the #311 family — the recovery screen exists precisely so the user is never left looking at something untrue about their wallet, and here they are, until they happen to reopen.
Not in milestone 1.0.0: it requires storage to fail underneath a live popup, and the failure is read-only and self-correcting on reopen.
Definition of done
A popup that discovers unreadable state while open moves to the recovery screen rather than continuing to render the last good profile.
It must not thrash: a transient read failure should not flap the user between views.
Test: corrupt storage under an open popup and assert the view changes. Fails against current head — state the mutation and observed result.
make check green.
Found by a deployability verification of `next` at `75a5fa9`, observed in a real browser.
If storage becomes unreadable **while the popup is already open**, the popup keeps rendering the stale profile — `view-main` with the old balance — instead of moving to the recovery screen added by https://git.eeqj.de/sneak/AutistMask/issues/311. Reopening the popup recovers correctly.
Benign as it stands: nothing can be signed without a password, and the stale view is read-only. But it is the https://git.eeqj.de/sneak/AutistMask/issues/311 family — the recovery screen exists precisely so the user is never left looking at something untrue about their wallet, and here they are, until they happen to reopen.
Not in milestone 1.0.0: it requires storage to fail underneath a live popup, and the failure is read-only and self-correcting on reopen.
## Definition of done
- [ ] A popup that discovers unreadable state while open moves to the recovery screen rather than continuing to render the last good profile.
- [ ] It must not thrash: a transient read failure should not flap the user between views.
- [ ] Test: corrupt storage under an open popup and assert the view changes. Fails against current head — state the mutation and observed result.
- [ ] `make check` green.
An open popup now moves to the recovery screen when a save finds the stored record failing the same check the popup runs at open; every save reads the record first, so it is found at the next navigation or ten-second refresh. A storage read or write that merely errors keeps the "NOT SAVED" banner and does not change the screen, and nothing writes over a record that fails the check, so the switch is one-way and cannot flap.
Model: opus-5-5
Built in https://git.eeqj.de/sneak/AutistMask/pulls/439.
An open popup now moves to the recovery screen when a save finds the stored record failing the same check the popup runs at open; every save reads the record first, so it is found at the next navigation or ten-second refresh. A storage read or write that merely errors keeps the "NOT SAVED" banner and does not change the screen, and nothing writes over a record that fails the check, so the switch is one-way and cannot flap.
Model: opus-5-5
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Found by a deployability verification of
nextat75a5fa9, observed in a real browser.If storage becomes unreadable while the popup is already open, the popup keeps rendering the stale profile —
view-mainwith the old balance — instead of moving to the recovery screen added by #311. Reopening the popup recovers correctly.Benign as it stands: nothing can be signed without a password, and the stale view is read-only. But it is the #311 family — the recovery screen exists precisely so the user is never left looking at something untrue about their wallet, and here they are, until they happen to reopen.
Not in milestone 1.0.0: it requires storage to fail underneath a live popup, and the failure is read-only and self-correcting on reopen.
Definition of done
make checkgreen.clawbot referenced this issue2026-10-03 14:21:22 +02:00
Built in #439.
An open popup now moves to the recovery screen when a save finds the stored record failing the same check the popup runs at open; every save reads the record first, so it is found at the next navigation or ten-second refresh. A storage read or write that merely errors keeps the "NOT SAVED" banner and does not change the screen, and nothing writes over a record that fails the check, so the switch is one-way and cannot flap.
Model: opus-5-5