From 16f513da8d319a8f940c713ddc8358399cd2e434 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Sun, 16 Aug 2026 20:22:28 -0700 Subject: The lock test learns the doors moved: logout is the front door and asks for a password once ever (the guard is finally wired to its comment), the padlock keeps asking because it must, and the suite walks the real UI again Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz --- src/app.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/app.js b/src/app.js index 0b63492..7e7dc9a 100644 --- a/src/app.js +++ b/src/app.js @@ -1710,12 +1710,12 @@ function lock({ offerPassword = false } = {}) { ui.txDetail = null; ui.broadcastTx = null; ui.bump = null; - // After the resets above (which clear ui.pw): locking with no password locks - // NOTHING — the wallets reopen by themselves. So a person who taps the - // padlock gets the password prompt every time until one exists; without it - // the tap would just be a confusing trip to the wallet list. (The idle - // timer still never nags.) - if (noPassword && offerPassword) { + // Offer to set a password on the way out — but once, ever: someone who said + // "Not now" has answered, and a wallet that nags is a wallet people stop + // reading. (The padlock is different: it asks every time via softLock's + // in-place prompt, because locking without a password is impossible and + // the tap would otherwise be a confusing trip to the wallet list.) + if (noPassword && offerPassword && !lockPwAsked()) { ui.pw = { purpose: 'lock', mode: 'set', v0: '', v1: '', v2: '', error: '' }; } render(); -- cgit v1.2.3