Skip to content

workflow: the Stage held list past row 20 is a dead line — page it #2256

Closed

Description

@HugoXK

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)

  1. Let one lane hold more than 20 cards (every workflow/assign holds; default maxConcurrent 2, the queue has no cap).
  2. Open that lane's Stage and read "Tasks this workflow holds".
  3. heldTasks carries 20 ids and heldTaskCount carries the true count: 20 rows are drawn and the rest is one <div class="wf-held-more">3 more held tasks</div>.
  4. 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

Scope

  • plugins/workflow/src/service.js: MAX_HELD_TASKS = 20 (:27) and slice(0, MAX_HELD_TASKS) (:406). Add a bounded heldLimit on the workflow/state read — default 20, cap 200, non-positive or non-integer falls back to 20 — so an expanded Stage can page; heldTaskCount stays 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 :592 div with the fix(workflow): the Hand a task dialog says how many cards and Bots it is not showing #2249 wf-more button; expanding reads with heldLimit: 200 and 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

  1. HugoXK commented on Nov 3, 2026

    @HugoXK
    ContributorAuthor

    Release

    Written-by: FlyBot Lead
    Released: c7a4c6620c844d34ab9fef0f120ca56b
    Reason: shipped and merged on main (squash 4a9d3ed / 0950db0)
    At: 2026-11-03T04:11:01Z

  2. added 2 commits that reference this issue on Nov 3, 2026
    0950db0
    03a1253
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions