docs: rebuild the README Screen Map from the code (closes #164) #202

Merged
clawbot merged 1 commits from docs/issue-164-screen-map into next 2026-08-11 14:31:46 +02:00
Collaborator

Closes #164.

Documentation only — README.md and TODO.md. No code, config, script, CI or
build file is touched.

Every Screen Map entry was re-verified against the source: the view modules in
src/popup/views/, the VIEWS registry in src/popup/views/helpers.js, the
navigation stack and RESTORABLE_VIEWS in src/popup/index.js, the markup in
src/popup/index.html, and the approval-popup mechanisms in
src/background/index.js. All 20 registered views now have an entry, each
labelled with its view id.

Screens added

  • ExportPrivKey (export-privkey) — reached from the ··· menu on
    AddressDetail; discloses secret material, so its password gate, its
    clear-on-Back behavior and its absence from RESTORABLE_VIEWS are documented.
  • DeleteWallet (delete-wallet-confirm) — reached from the per-wallet [x]
    in Settings, including the different outcomes for the last wallet versus any
    other.
  • SettingsAddToken (settings-addtoken) — reached from "+ Add token" in
    Settings, and how it differs from AddToken.

Flow descriptions corrected

  • AddWallet / ImportKey. There is no ImportKey screen and no "Have a private
    key instead?" link. AddWallet is one screen with three tabs (tab-mnemonic,
    tab-privkey, tab-xprv). The ImportKey entry is gone and AddWallet now
    describes the tabbed UI, including the previously undocumented xprv mode.
  • ConfirmTx password. It is an inline field on the screen, not a modal
    (index.html confirm-tx-password, confirmTx.js). The button is labelled
    "Sign & Send", not "Send".
  • Approval popup mechanisms were swapped. Site approval prefers
    action.openPopup() with a windows.create fallback; tx and sign approvals
    always use windows.create (src/background/index.js, requestApproval(),
    requestTxApproval(), requestSignApproval()). The two descriptions are now
    the right way round.
  • Home transaction rows. They open TransactionDetail, not AddressDetail
    (home.js, renderHomeTxList).
  • Back transitions. Every Back button calls goBack(), which pops the
    navigation stack, so the entries now name the real set of origin screens
    instead of a single fixed destination. Send, Receive and TransactionDetail can
    all be reached from Home as well as from the address views.

Other corrections in the same section

  • Settings now lists every element it has: the network selector, theme selector,
    UTC timestamps checkbox, tracked-token list with remove, "+ Add token",
    per-wallet rename and delete, the About well and the debug easter egg.
  • The xprv wallet type is added to the Data Model and to Supported
    Functionality; the "+" button is documented as HD and xprv.
  • AddressDetail gains the ··· menu, AddressToken the token contract well,
    SuccessTx the decoded-action well, ConfirmTx the four reserved async warning
    boxes, and the approval screens their phishing banners and the eth_sign
    danger warning.
  • Approval screens document that closing the window without answering rejects
    with EIP-1193 code 4001.
  • The Screen Map intro now states the stack model precisely and factors out the
    always-present chrome (title bar, flash line, debug/testnet banner).
  • The TODO checkbox "Gas estimation and fee display before confirming" is
    ticked; it is implemented in confirmTx.js (estimateGas).
  • The Clickable Affordance example cited "Import private key", a UI string that
    does not exist; it now cites "Add additional wallet...".

The DeleteWallet entry describes the post-#156 behavior, since
#156 landed on next during
this work: the active address moves only when it belonged to the deleted wallet,
and AUTISTMASK_ACTIVE_CHANGED is broadcast when it does.

Left alone deliberately, since their issues are still open and own those lines:
the screens that #161 and
#162 will introduce, and
their two README TODO checkboxes.

Verification

make fmt run; the result is in the commit.

Rebased onto next at 19cb1ca and re-checked there. make check passes: 8
test suites, 149 tests, and prettier --check . reports "All matched files use
Prettier code style!" for both the lint and fmt-check stages.

The gating run was containerized via script/cibuild (docker build ., whose
Dockerfile runs make check). The make check layer ran uncached —
#12 [7/8] RUN make check, DONE 17.1s, with the 149-test result and both
prettier passes in its output — and make build completed after it.

Closes [#164](https://git.eeqj.de/sneak/AutistMask/issues/164). Documentation only — `README.md` and `TODO.md`. No code, config, script, CI or build file is touched. Every Screen Map entry was re-verified against the source: the view modules in `src/popup/views/`, the `VIEWS` registry in `src/popup/views/helpers.js`, the navigation stack and `RESTORABLE_VIEWS` in `src/popup/index.js`, the markup in `src/popup/index.html`, and the approval-popup mechanisms in `src/background/index.js`. All 20 registered views now have an entry, each labelled with its view id. ### Screens added - **ExportPrivKey** (`export-privkey`) — reached from the `···` menu on AddressDetail; discloses secret material, so its password gate, its clear-on-Back behavior and its absence from `RESTORABLE_VIEWS` are documented. - **DeleteWallet** (`delete-wallet-confirm`) — reached from the per-wallet `[x]` in Settings, including the different outcomes for the last wallet versus any other. - **SettingsAddToken** (`settings-addtoken`) — reached from "+ Add token" in Settings, and how it differs from AddToken. ### Flow descriptions corrected - **AddWallet / ImportKey.** There is no ImportKey screen and no "Have a private key instead?" link. AddWallet is one screen with three tabs (`tab-mnemonic`, `tab-privkey`, `tab-xprv`). The ImportKey entry is gone and AddWallet now describes the tabbed UI, including the previously undocumented xprv mode. - **ConfirmTx password.** It is an inline field on the screen, not a modal (`index.html` `confirm-tx-password`, `confirmTx.js`). The button is labelled "Sign & Send", not "Send". - **Approval popup mechanisms were swapped.** Site approval prefers `action.openPopup()` with a `windows.create` fallback; tx and sign approvals always use `windows.create` (`src/background/index.js`, `requestApproval()`, `requestTxApproval()`, `requestSignApproval()`). The two descriptions are now the right way round. - **Home transaction rows.** They open TransactionDetail, not AddressDetail (`home.js`, `renderHomeTxList`). - **Back transitions.** Every Back button calls `goBack()`, which pops the navigation stack, so the entries now name the real set of origin screens instead of a single fixed destination. Send, Receive and TransactionDetail can all be reached from Home as well as from the address views. ### Other corrections in the same section - Settings now lists every element it has: the network selector, theme selector, UTC timestamps checkbox, tracked-token list with remove, "+ Add token", per-wallet rename and delete, the About well and the debug easter egg. - The `xprv` wallet type is added to the Data Model and to Supported Functionality; the "+" button is documented as HD **and** xprv. - AddressDetail gains the `···` menu, AddressToken the token contract well, SuccessTx the decoded-action well, ConfirmTx the four reserved async warning boxes, and the approval screens their phishing banners and the `eth_sign` danger warning. - Approval screens document that closing the window without answering rejects with EIP-1193 code 4001. - The Screen Map intro now states the stack model precisely and factors out the always-present chrome (title bar, flash line, debug/testnet banner). - The TODO checkbox "Gas estimation and fee display before confirming" is ticked; it is implemented in `confirmTx.js` (`estimateGas`). - The Clickable Affordance example cited "Import private key", a UI string that does not exist; it now cites "Add additional wallet...". The DeleteWallet entry describes the post-#156 behavior, since [#156](https://git.eeqj.de/sneak/AutistMask/issues/156) landed on `next` during this work: the active address moves only when it belonged to the deleted wallet, and `AUTISTMASK_ACTIVE_CHANGED` is broadcast when it does. Left alone deliberately, since their issues are still open and own those lines: the screens that [#161](https://git.eeqj.de/sneak/AutistMask/issues/161) and [#162](https://git.eeqj.de/sneak/AutistMask/issues/162) will introduce, and their two README TODO checkboxes. ### Verification `make fmt` run; the result is in the commit. Rebased onto `next` at `19cb1ca` and re-checked there. `make check` passes: 8 test suites, 149 tests, and `prettier --check .` reports "All matched files use Prettier code style!" for both the lint and fmt-check stages. The gating run was containerized via `script/cibuild` (`docker build .`, whose Dockerfile runs `make check`). The `make check` layer ran uncached — `#12 [7/8] RUN make check`, `DONE 17.1s`, with the 149-test result and both prettier passes in its output — and `make build` completed after it.
clawbot added 1 commit 2026-08-11 14:23:34 +02:00
docs: rebuild the README Screen Map from the code (closes #164)
Some checks failed
check / check (push) Has been cancelled
86669d0f53
The Screen Map had drifted from src/popup/ in both directions. Every entry
was re-verified against the view modules, the view registry in
src/popup/views/helpers.js, the navigation stack in src/popup/index.js and
the markup in src/popup/index.html, and rewritten to match.

Screens added: ExportPrivKey, DeleteWallet, SettingsAddToken.

Flow descriptions corrected: AddWallet is one screen with three tabs, not
an AddWallet screen plus an ImportKey screen reached from a link that does
not exist; ConfirmTx takes an inline password field, not a modal; the
SiteApproval and TxApproval popup mechanisms were swapped relative to
src/background/index.js; a Home transaction row opens TransactionDetail,
not AddressDetail. Back transitions now say "previous screen" with the
actual origins, since every Back button pops the navigation stack.

Also: the xprv wallet type added to the Data Model, the Screen Map and
Supported Functionality; Settings now lists every element it has; the
"Gas estimation and fee display before confirming" TODO checkbox ticked,
as confirmTx.js implements it; and the Clickable Affordance example no
longer cites a UI string that does not exist.

Documentation only. Verified with make check (7 suites, 143 tests, prettier
clean) and with script/cibuild, whose containerized make check ran
uncached.
clawbot self-assigned this 2026-08-11 14:23:39 +02:00
clawbot added the needs-review label 2026-08-11 14:23:39 +02:00
clawbot added needs-rebase and removed needs-review labels 2026-08-11 14:26:08 +02:00
clawbot force-pushed docs/issue-164-screen-map from 86669d0f53 to 75bff7c29c 2026-08-11 14:27:47 +02:00 Compare
clawbot force-pushed docs/issue-164-screen-map from 75bff7c29c to 64d95e80b5 2026-08-11 14:29:21 +02:00 Compare
clawbot added needs-review and removed needs-rebase labels 2026-08-11 14:29:41 +02:00
clawbot merged commit b9bc226ae1 into next 2026-08-11 14:31:46 +02:00
clawbot deleted branch docs/issue-164-screen-map 2026-08-11 14:31:46 +02:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/AutistMask#202