Skip to content

fix(issues-gh): default list page size to 200 so the swarm sees its whole backlog - #141

Open
laird wants to merge 1 commit into
masterfrom
fix/issues-gh-list-limit
Open

fix(issues-gh): default list page size to 200 so the swarm sees its whole backlog#141
laird wants to merge 1 commit into
masterfrom
fix/issues-gh-list-limit

Conversation

@laird

@laird laird commented Sep 3, 2026

Copy link
Copy Markdown
Owner

Fixes #140.

cmd_list never passed --limit, so it inherited gh's default of 30. Every worker's fix-loop gate and the manager's monitor sweep selected work from a 30-issue window no matter how much claimable work existed.

The window is also arbitrary. Once --search is in play gh goes through the search API, whose ordering is best match over a purely negative query (-label:"working" -label:"needs-design" ...) — so the surviving 30 are not the newest, the oldest, or the highest priority. Callers rank P0>P1>P2>P3 after this call, which only reorders whatever the slice happened to contain. An unblocked P0 outside the page is invisible, not deprioritised, and the swarm reports IDLE_NO_WORK_AVAILABLE with real work outstanding.

Change

One line in cmd_list, plus the comment explaining why 30 is not a safe default here:

-  [ -n "$limit" ] && args+=(--limit "$limit")
+  args+=(--limit "${limit:-200}")

Applied to the canonical plugins/autocoder/scripts/ copy and propagated to the other five platform packages via scripts/package-plugin-scripts.py (no hand-editing; --check is green).

This covers the working and blocked buckets too, since they share cmd_list — stale-claim detection was capped at 30 the same way, so a swarm with more than 30 claims would have under-reported orphans.

Verification

Against the live repo where this surfaced:

issues returned
installed 4.21.0 (unfixed) 30
this branch 72
  • Unblocked P0 #685, previously absent, is now in the result set.
  • An explicit --limit 5 still returns 5 — the default does not override callers.
  • tests/test_issues_gh_search.sh — 15 passed / 0 failed.
  • tests/test_script_packaging.sh — 15 passed / 0 failed.

Note

blocked is absent from BLOCKING_SEARCH, so blocked-labelled issues still come back in the open bucket and callers must re-filter. That may be deliberate, but it is a separate surprise in the same function and is not touched here.

…hole backlog

cmd_list never passed --limit, so it inherited gh's default of 30. Every
worker's fix-loop gate and the manager's monitor sweep selected work from a
30-issue window no matter how much claimable work existed.

The window is also arbitrary. Once --search is in play gh goes through the
search API, whose ordering is "best match" over a purely negative query
(-label:"working" -label:"needs-design" ...) -- so the 30 that survive are not
the newest, the oldest, or the highest priority. Callers rank P0>P1>P2>P3
after this call, which only reorders whatever the slice happened to contain.
An unblocked P0 outside the page is invisible, not deprioritised, and the
swarm reports IDLE_NO_WORK_AVAILABLE with real work outstanding.

Measured on the repo where this surfaced: 72 claimable issues, 30 visible,
24 of the dropped ones labelled P0/P1 -- including an unblocked P0 no worker
could ever claim. After the change the same call returns all 72 and that P0 is
visible. An explicit --limit still wins.

This covers the working and blocked buckets too, which share cmd_list: stale
claim detection was capped at 30 the same way.

Fixes #140
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

issues-gh.sh list omits --limit, so the swarm only ever sees 30 issues (unblocked P0s become unclaimable)

1 participant