decodedDetailsHtml() in src/popup/views/txStatus.js, called when a saved wait's receipt arrives.
What happens
Found by the review of #732; the same on next. A saved wait whose decoded.details is not a list of records throws when its receipt arrives. The popup then stays on WaitTx with the counter stopped.
What should happen
A saved record in a shape this code did not write shows the screen without those lines, as renderError() and the wait screen do.
Severity: minor
Definition of done
decodedDetailsHtml() shows only the lines whose label and value are text, and never throws.
A Jest test with a saved wait in each such shape, failing on next.
Model: opus-5-5
## Where
`decodedDetailsHtml()` in `src/popup/views/txStatus.js`, called when a saved wait's receipt arrives.
## What happens
Found by the review of https://git.eeqj.de/sneak/AutistMask/pulls/732; the same on `next`. A saved wait whose `decoded.details` is not a list of records throws when its receipt arrives. The popup then stays on WaitTx with the counter stopped.
## What should happen
A saved record in a shape this code did not write shows the screen without those lines, as `renderError()` and the wait screen do.
Severity: minor
## Definition of done
- [ ] `decodedDetailsHtml()` shows only the lines whose label and value are text, and never throws.
- [ ] A Jest test with a saved wait in each such shape, failing on `next`.
Model: opus-5-5
clawbot
self-assigned this 2026-11-03 07:47:37 +01:00
Plan: one PR to next, in src/popup/views/txStatus.js. decodedDetailsHtml() shows only the lines whose label and value are text, and never throws. Tests in tests/txStatus.test.js, failing on next.
Also, the two notes from the review of #737, in the same file:
break-words in place of break-all, on wait-tx-summary and error-tx-summary in src/popup/index.html and on the amount in movedOrAllowedHtml(), so that words stay whole and long runs of digits still wrap.
A Permit2 allowance line on these two screens also shows its Allowance token line, so that Unlimited says which token it covers. A test for it.
Model: opus-5-5
Plan: one PR to `next`, in `src/popup/views/txStatus.js`. `decodedDetailsHtml()` shows only the lines whose label and value are text, and never throws. Tests in `tests/txStatus.test.js`, failing on `next`.
Also, the two notes from the review of https://git.eeqj.de/sneak/AutistMask/pulls/737, in the same file:
- `break-words` in place of `break-all`, on `wait-tx-summary` and `error-tx-summary` in `src/popup/index.html` and on the amount in `movedOrAllowedHtml()`, so that words stay whole and long runs of digits still wrap.
- A `Permit2 allowance` line on these two screens also shows its `Allowance token` line, so that `Unlimited` says which token it covers. A test for it.
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.
Where
decodedDetailsHtml()insrc/popup/views/txStatus.js, called when a saved wait's receipt arrives.What happens
Found by the review of #732; the same on
next. A saved wait whosedecoded.detailsis not a list of records throws when its receipt arrives. The popup then stays on WaitTx with the counter stopped.What should happen
A saved record in a shape this code did not write shows the screen without those lines, as
renderError()and the wait screen do.Severity: minor
Definition of done
decodedDetailsHtml()shows only the lines whose label and value are text, and never throws.next.Model: opus-5-5
Plan: one PR to
next, insrc/popup/views/txStatus.js.decodedDetailsHtml()shows only the lines whose label and value are text, and never throws. Tests intests/txStatus.test.js, failing onnext.Also, the two notes from the review of #737, in the same file:
break-wordsin place ofbreak-all, onwait-tx-summaryanderror-tx-summaryinsrc/popup/index.htmland on the amount inmovedOrAllowedHtml(), so that words stay whole and long runs of digits still wrap.Permit2 allowanceline on these two screens also shows itsAllowance tokenline, so thatUnlimitedsays which token it covers. A test for it.Model: opus-5-5