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: c7a4c6620c844d34ab9fef0f120ca56b
Branch: dev/1-p464-held-tasks-more
Base: 575fadf
At: 2026-11-03T02:44:00Z
Implementation: FlyBot (ours) — PR follows within 24h. Do not pick up without a pickup-ok comment.
Written-by: FlyBot Lead
Stage's "Tasks this workflow holds" list stops at 20 rows; every held task past row 20 is unreachable — the line below it is a plain div, so there is no way to see, open or Re-match those claims.
Reproduction (live main 575fadf3, component-level probe)
- Let one lane hold more than 20 cards (every
workflow/assignholds; defaultmaxConcurrent2, the queue has no cap). - Open that lane's Stage and read "Tasks this workflow holds".
heldTaskscarries 20 ids andheldTaskCountcarries the true count: 20 rows are drawn and the rest is one<div class="wf-held-more">3 more held tasks</div>.- Probe:
PROBE_HELD_ROWS 20 "task-held-20",PROBE_HELD_MORE 1 "3 more held tasks" type div,PROBE_HELD_MORE_CLICKABLE undefined,PROBE_HELD_BUTTONS [],PROBE_HELD_TASK21_TEXT false— the 21st id is not in the DOM at all. Tasks board shows the card, but nothing says which lane holds it, and there is no other Re-match entry point.
Expected
- The rest is a control:
<button class="wf-more">Show 3 more held tasks</button>witharia-expanded, the same primitive fix(workflow): the Hand a task dialog says how many cards and Bots it is not showing #2249 added to this file. - Expanding lists every held id (a 23-id fixture reaches the 23rd id and can Re-match it).
- At 20 or fewer held tasks the row is absent and the rest of the Stage is byte-identical.
Scope
plugins/workflow/src/service.js:MAX_HELD_TASKS = 20(:27) andslice(0, MAX_HELD_TASKS)(:406). Add a boundedheldLimiton theworkflow/stateread — default 20, cap 200, non-positive or non-integer falls back to 20 — so an expanded Stage can page;heldTaskCountstays the true count. This read is polled, so keep the default at 20 and do not widen it unconditionally.plugins/workflow/client.js(:586–593): replace the :592divwith the fix(workflow): the Hand a task dialog says how many cards and Bots it is not showing #2249wf-morebutton; expanding reads withheldLimit: 200and keeps that page on the 2s poll, collapsing returns to 20, and switching lane resets the expanded state.plugins/workflow/test/: server-side paging cases (default 20 / 200 / clamped at 200 / invalid falls back to 20) plus expand-and-collapse client cases.docs/subsystems/workflow.md(one line),changelog.d/.- Plugin source only: no generated artefacts,
patches/ds-bot/untouched.
Tier
T2 — the change lands in plugins/workflow/**.
Duplicate check
live main grep: MAX_HELD_TASKS and heldTaskCount exist only from #1649 (closed, the commit that introduced the held list). Issue search: heldLimit 0 hits; held tasks 8 hits, all closed — #2249 (closed) is the adjacent "says how many are not shown" fix of the Hand-a-task dialog and #2244 (closed) is that dialog's 12-row pick-list cut. No open issue covers the Stage held list. Backlog P-135 (held rows show raw ids) is a content issue, different.
Branch: dev/1-p464-held-tasks-more
Owner: Dev
Activity
HugoXK commentedon Nov 3, 2026
Release
Written-by: FlyBot Lead
Released: c7a4c6620c844d34ab9fef0f120ca56b
Reason: shipped and merged on main (squash 4a9d3ed / 0950db0)
At: 2026-11-03T04:11:01Z
workflow: the Stage held list past row 20 is a dead line — page it (T…
workflow: count only the held ids the wider page reaches (ThinkFlowLa…