fix: move the UTC Timestamps checkbox into the Display well (closes #212) #214
Reference in New Issue
Block a user
Delete Branch "fix/issue-212-utc-checkbox-placement"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #212.
What moved
The
settings-utc-timestampscheckbox insrc/popup/index.htmlmoved out ofthe Token Spam Protection well (where it sat immediately after the
dust-threshold input) into the Display well, between the "Show tracked tokens
with zero balance" checkbox and the theme selector. The markup itself is
unchanged apart from
mb-1becomingmb-2to match its new neighbours.README Screen Map: the Settings entry's Display bullet now lists the checkbox;
it was removed from the Token Spam Protection bullet list. The existing entry
was edited in place, not restructured.
What I verified about the wiring
The setting is bound entirely by id, so the move cannot reach it:
src/popup/views/settings.jstouches it only as$("settings-utc-timestamps")— once to seed.checkedfromstate.utcTimestamps, once to attach thechangehandler.$insrc/popup/views/helpers.jsis a plaindocument.getElementById(id). Noclosest, noparentElement, no siblingtraversal, and no event delegation rooted at the spam-protection container
anywhere in the file. The only
container.querySelectorAllcalls insettings.jsare for the sites, tracked-token and wallet lists, which areseparate wells.
src/shared/state.js(default, persist, load) and thestate.utcTimestampsread in
src/popup/views/helpers.jsare untouched.Not verified: the popup was not opened in a browser. The placement is asserted
against the markup, not against a rendered screenshot, and
make test-e2ewasnot run (it needs docker-backed Chrome and is not part of
make check).Tests
New
tests/settingsUtcTimestamps.test.js, six tests:settings-theme;are still present;
state.utcTimestampsround-trips against a stubbedchrome.storage.local:defaults to
false, an enabled value survivessaveStateand a freshloadState, and turning it back off persists too.make checkGreen. The run output shows
PASS tests/settingsUtcTimestamps.test.js—the new suite executed, nothing cached — and totals of
Test Suites: 9 passed, 9 total,Tests: 155 passed, 155 total, thenprettier --check .reportingAll matched files use Prettier code style!.Run before the commit, again by the pre-commit hook, and again after
git fetch origin && git rebase origin/next.nexthad not moved since thebranch point, so that rebase was a no-op and no
TODO.mdconflict arose.make fmtwas run over the markdown changes.Scope: settings markup, README Settings entry,
TODO.md, one new test file.Nothing in the confirm-transaction section of
index.htmlwas touched.The `settings-utc-timestamps` checkbox sat inside the Token Spam Protection well, immediately after the dust-threshold input. It is a display preference and has nothing to do with spam filtering, so it now renders in the Display well next to the theme selector. Markup move only. The checkbox is wired by id — `$("settings-utc-timestamps")` in `src/popup/views/settings.js`, where `$` is `document.getElementById` — for both the initial `checked` assignment and the `change` handler, so nothing in the wiring depends on the element's parent or siblings. `state.utcTimestamps`, `saveState`/`loadState` and the `helpers.js` formatting path are untouched. `tests/settingsUtcTimestamps.test.js` pins both halves down: the checkbox appears exactly once and inside the Display well rather than the spam well, and the setting still round-trips through storage.FAIL — needs-rework
docs/README.md:370-371— the user-facing Settings list still reads- **Token Spam Protection**: Toggle individual scam filters, set the dust transaction threshold, and switch timestamps to UTC.and the Display bullet (lines 362-364) still lists only zero-balance and theme. This change makes that description wrong: the checkbox is no longer in that well. The README Screen Map was corrected but this second Settings description was not, so the PR ships the same doc/source drift that #212 was filed for ("Found independently by two workers verifying the README Screen Map and the docs against the source"), and
docs/README.mdis actively maintained —b9bc226/19cb1catouched it two commits ago. Acceptable: drop "and switch timestamps to UTC" from the Token Spam Protection bullet and add the UTC Timestamps toggle to the Display bullet, in the same commit.Disclosure — CI never started: status on
6114afbispending/ "Waiting to run",created_at==updated_at== 14:37:41 and unmoved since. Not red; not counted against the change, but no CI evidence exists for this head.Verified clean, each by its own probe: teeth (moved the checkbox back into the spam well locally — both placement tests failed, tree restored); wiring (id-only via
$=getElementById, noclosest/parentElement/sibling traversal, no positional or combinator selector anywhere inmain.css,bg-wellis a Tailwind theme utility, e2e selects nothing under settings); tree-accident recovery (HEAD^==origin/nextexactly, one commit, diff vsnextis exactly the four intended files, checkbox id present exactly once — nothing lost or half-reverted);make checkgreen locally (9 suites / 155 tests,PASS tests/settingsUtcTimestamps.test.js, prettier clean) andmake test-e2egreen (built and ran in the pinned container, 4/4, popup loads); basenext, single commit titled(closes #212), oneTODO.mdline, Screen Map edited in place, no Claude/Anthropic references or attribution trailers.6114afbeeato585664f9d2585664f9d2tob532115234b532115234to512b25c3daPASS — the
docs/README.mdSettings list now matches the markup on both bullets, my own sweep of every doc in the repo found no third stale Settings description, andmake checkis green here (11 suites / 257 passed + 1 pre-existing skip intests/wallet.test.js,PASS tests/settingsUtcTimestamps.test.js, prettier clean).Disclosures: the previously-reviewed head
6114afbis no longer fetchable, so I could not byte-diff against it — I verified equivalently that the delta vsnextis exactly the same five files, thatsrc/popup/views/settings.jsis absent from the diff entirely, and that theindex.htmlhunk andtests/settingsUtcTimestamps.test.jsmatch what the prior review described.make test-e2ewas not re-run; the only change since the prior review's green e2e run is markdown. Sweep method: enumerated every tracked.md/.html/.json/.yml(5 docs total) and grepped for well-name and control-name enumerations, not just "timestamp" — the only Settings listings areREADME.mdScreen Map anddocs/README.md, both correct;RULES.mdline 50 is a feature checklist with no placement claim, and thedocs/README.mdspam-filter narrative (lines 325-353) never mentioned the UTC control.TODO.mdcarries no conflict markers and, relative to the branch's merge-base, retains every landed unit's Completed Steps entry plus the one added line.Information only, not counted against the change: the branch is 2 commits behind
next(#223,#161), whose Completed Steps entries will conflict onTODO.mdat rebase; the API reportsmergeable: falsefor that reason. Tracker CI status was ignored as unreliable.512b25c3dato43ca3307ec