DeleteWallet and DeleteWalletLostPassword told the owner of a key or xprv wallet that its recovery phrase was the way back. Those wallets have none: their only backup is the private key or extended private key they were imported from.
Both screens now fill the noun in from the wallet: recovery phrase, private key or extended private key. The choice is keyMaterialName() in src/popup/views/helpers.js. It is the two-way choice DeleteAddress's recoveryPathText() already made, moved out and given the key wallet case (DeleteAddress is never offered on a key wallet, so it never needed it). DeleteAddress now calls it too, so one function picks the noun for all three screens. README's entries for the three screens say so.
Disclosures:
Judgement call: the lost-password sentence "If you have the recovery phrase for this wallet written down … If you do not have it written down" now reads "If you have kept a copy of this wallet's private key … If you have not" (with the wallet's own noun), so it fits a key as well as a phrase. HD wallets see the new wording too.
The new test in tests/deleteWalletLostPassword.test.js opens both screens for each wallet kind and checks the noun each one shows. The fixed words around it live in the markup, which the test's stand-in page does not carry, so the test does not read them.
Model: opus-5-5
DeleteWallet and DeleteWalletLostPassword told the owner of a key or `xprv` wallet that its recovery phrase was the way back. Those wallets have none: their only backup is the private key or extended private key they were imported from.
Both screens now fill the noun in from the wallet: recovery phrase, private key or extended private key. The choice is `keyMaterialName()` in `src/popup/views/helpers.js`. It is the two-way choice DeleteAddress's `recoveryPathText()` already made, moved out and given the key wallet case (DeleteAddress is never offered on a key wallet, so it never needed it). DeleteAddress now calls it too, so one function picks the noun for all three screens. README's entries for the three screens say so.
Disclosures:
- Judgement call: the lost-password sentence "If you have the recovery phrase for this wallet written down … If you do not have it written down" now reads "If you have kept a copy of this wallet's private key … If you have not" (with the wallet's own noun), so it fits a key as well as a phrase. HD wallets see the new wording too.
- The new test in `tests/deleteWalletLostPassword.test.js` opens both screens for each wallet kind and checks the noun each one shows. The fixed words around it live in the markup, which the test's stand-in page does not carry, so the test does not read them.
Model: opus-5-5
src/popup/views/helpers.js, the comment above keyMaterialName(): it says the screens that tell the user what to keep or import again name the backup through this function, so a key or xprv wallet is never sent looking for a recovery phrase. The code does not do that. AddWallet's password hints and the StateRecovery erase warning name the backup themselves, and the StateRecovery warning still tells every user to have "the recovery phrase for each wallet written down". Someone who trusts the comment will think that changing this function covers every such screen. Acceptable: the comment names only the screens that use the function (DeleteWallet, DeleteWalletLostPassword and DeleteAddress) and makes no promise about any other screen.
Disclosures:
Judgement call: keyMaterialName() counts as part of src/popup/views/helpers.js's job as the helper module the views share.
Judgement call: the new test checks the noun each screen shows, not the fixed sentence around it, and that counts as meeting the test item in #529.
Model: opus-5-5
**FAIL: needs-rework**
- `src/popup/views/helpers.js`, the comment above `keyMaterialName()`: it says the screens that tell the user what to keep or import again name the backup through this function, so a key or xprv wallet is never sent looking for a recovery phrase. The code does not do that. AddWallet's password hints and the StateRecovery erase warning name the backup themselves, and the StateRecovery warning still tells every user to have "the recovery phrase for each wallet written down". Someone who trusts the comment will think that changing this function covers every such screen. Acceptable: the comment names only the screens that use the function (DeleteWallet, DeleteWalletLostPassword and DeleteAddress) and makes no promise about any other screen.
Disclosures:
- Judgement call: `keyMaterialName()` counts as part of `src/popup/views/helpers.js`'s job as the helper module the views share.
- Judgement call: the new test checks the noun each screen shows, not the fixed sentence around it, and that counts as meeting the test item in https://git.eeqj.de/sneak/AutistMask/issues/529.
Model: opus-5-5
DeleteWallet and DeleteWalletLostPassword told key and xprv wallets that
their recovery phrase was the way back, but those wallets have none. Both
screens now name the recovery phrase, the private key or the extended
private key, according to the wallet's kind.
The noun comes from keyMaterialName() in the popup view helpers, which
DeleteAddress now uses too in place of its own two-way choice, so these
three screens get it from one place. The lost-password screen's route-back
sentence is reworded to fit all three kinds.
Model: opus-5-5
The comment above keyMaterialName() now names only DeleteWallet, DeleteWalletLostPassword and DeleteAddress as its users, and no longer says every wallet was imported, since an HD wallet can be generated.
Model: opus-5-5
The comment above `keyMaterialName()` now names only DeleteWallet, DeleteWalletLostPassword and DeleteAddress as its users, and no longer says every wallet was imported, since an HD wallet can be generated.
Model: opus-5-5
PASS: the comment above keyMaterialName() now names only the three screens that use it, and every comment and README sentence this PR touches matches the code.
Model: opus-5-5
**PASS**: the comment above `keyMaterialName()` now names only the three screens that use it, and every comment and README sentence this PR touches matches the code.
Model: opus-5-5
clawbot
merged commit e791dc72d2 into next2026-10-19 06:12:01 +02:00
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.
DeleteWallet and DeleteWalletLostPassword told the owner of a key or
xprvwallet that its recovery phrase was the way back. Those wallets have none: their only backup is the private key or extended private key they were imported from.Both screens now fill the noun in from the wallet: recovery phrase, private key or extended private key. The choice is
keyMaterialName()insrc/popup/views/helpers.js. It is the two-way choice DeleteAddress'srecoveryPathText()already made, moved out and given the key wallet case (DeleteAddress is never offered on a key wallet, so it never needed it). DeleteAddress now calls it too, so one function picks the noun for all three screens. README's entries for the three screens say so.Disclosures:
tests/deleteWalletLostPassword.test.jsopens both screens for each wallet kind and checks the noun each one shows. The fixed words around it live in the markup, which the test's stand-in page does not carry, so the test does not read them.Model: opus-5-5
clawbot referenced this pull request2026-10-19 05:48:32 +02:00
FAIL: needs-rework
src/popup/views/helpers.js, the comment abovekeyMaterialName(): it says the screens that tell the user what to keep or import again name the backup through this function, so a key or xprv wallet is never sent looking for a recovery phrase. The code does not do that. AddWallet's password hints and the StateRecovery erase warning name the backup themselves, and the StateRecovery warning still tells every user to have "the recovery phrase for each wallet written down". Someone who trusts the comment will think that changing this function covers every such screen. Acceptable: the comment names only the screens that use the function (DeleteWallet, DeleteWalletLostPassword and DeleteAddress) and makes no promise about any other screen.Disclosures:
keyMaterialName()counts as part ofsrc/popup/views/helpers.js's job as the helper module the views share.Model: opus-5-5
50454216dato1bf806598fThe comment above
keyMaterialName()now names only DeleteWallet, DeleteWalletLostPassword and DeleteAddress as its users, and no longer says every wallet was imported, since an HD wallet can be generated.Model: opus-5-5
PASS: the comment above
keyMaterialName()now names only the three screens that use it, and every comment and README sentence this PR touches matches the code.Model: opus-5-5