Repository navigation
Description
Implementation: FlyBot (ours) — PR follows within 24h. Do not pick up without a pickup-ok comment on this issue.
Written-by: FlyBot Lead
Claimed-by: FlyBot Lead
Claim-Id: fd33c02bd8dc4ad6ad8cc5c2cece3b97
Branch: dev/1-inbox-show-all
Base: 816d1a8
At: 2026-11-01T14:59:01Z
Implementation: FlyBot (ours) — PR follows within 24h. Do not pick up without a pickup-ok comment.
Written-by: FlyBot Lead
What happens today
#2042 made the Inbox say how many finished tasks the Done group hides, but the hidden rows are gone from the model, so nothing in the product can open them: the line that states the count is dead text.
Probe against live main (tmp/main_3eca1e54/core/dev/probe-inbox-more.mjs, the real inbox.js bundled with esbuild and the test react stub, useTasks publishing 29 accepted tasks):
finished tasks the Bot really has : 29
Done rows the model hands the dialog : 20
model.doneTotal : 29
model keys : needs, progress, done, doneTotal
does the model keep the rows past 20? : NO
Done rows drawn : 20
"more not shown" line : 9 more not shown
is that line a control? : false
any control that reveals hidden rows : NO
the 9 oldest finished tasks reachable? : NO
core/src/client/inbox.js:25—const DONE_MAX = 20.:361—return { …, done: settled.slice(0, DONE_MAX), doneTotal: settled.length }: the cut rows never enter the model.:668—h('div', { key: 'more', className: 'bt-inbox-more' }, …): a plain div, no button, no click.- Settings lists scheduled tasks only, so the finished rows have no other entry point anywhere in the UI.
Expected
The Done group states the total it has and gives a way to see it: a Show all toggle that draws all finished rows in place, with the same rows, order and row component as today. Collapsed stays exactly as today (20 rows plus the count line); DONE_MAX itself does not change.
Reproduction
On live main, run the probe above; with 29 finished tasks the model has done: 20 / doneTotal: 29, the count line renders, and no control exists to reveal the other 9.
Scope
core/src/client/inbox.js— the model carriesdoneAll: settledalongsidedone: settled.slice(0, DONE_MAX); the Done group gets aShow all/Show fewertoggle that switches which list it draws; the count line becomes/keeps a control that flips it, or disappears when everything is shown.core/src/client/i18n.js— the toggle labels (EN + ZH).core/test/inbox.test.js— cases: 29 finished draw 20 + the count line and no extra rows; the toggle expands to 29 and the control reads the collapsed state; ≤20 finished is byte-identical to today; the toggle does not touch the needs/progress groups.core/client.jsand thepatches/ds-bot/mirrors regenerated bybuild-client/generate, never hand-edited.docs/subsystems/core-client.md— one sentence if it states the Inbox row cap.changelog.d/<issue>-inbox-show-all.fixed.md.
Out of scope: pagination or a new host endpoint for finished tasks (that was option B and is rejected — client-only fix), DONE_MAX, and any host/store change.
Dedupe
Searched live main and closed issues for "more not shown" and DONE_MAX: only #2042 (issue, closed) and #2044 (PR, closed, the count line) match, and neither gives a way to open the hidden rows. This is the follow-up defect that fix left behind, not a duplicate of it.
Activity
Inbox Done group opens the finished rows past the cap (ThinkFlowLab#2050
HugoXK commentedon Nov 1, 2026
Release
Written-by: FlyBot Lead
Released: fd33c02bd8dc4ad6ad8cc5c2cece3b97
Reason: merged as 70ca435 (squash of #2051, tree b21c3b80 matches the tip)
At: 2026-11-01T16:02:06Z
Open the Inbox's hidden finished rows from its Done group (ThinkFlowL…