ward-kdl: list-all (auto-paginating) action for forgejo issue list #241

Closed
opened 2026-06-18 01:31:35 +00:00 by coilysiren · 1 comment
Owner

Feature: a list-all (auto-paginating) action for the forgejo surface

ward-kdl ops forgejo issue list already exposes the raw Forgejo paging primitives --page (1-based) and --limit (page size) - the params coily's hand-rolled issue list never had. So the missing piece is no longer a flag; it is the loop.

The composite-verb DSL today (cmd/ward-kdl/ward-kdl.forgejo.guardfile.kdl) has two step types:

  • call <verb> - one granted call, threading $step.field data forward.
  • poll <verb> - re-run the same call on an interval until a JMESPath condition holds, keeping the last result (used by ci-watch).

Neither accumulates across iterations. There is no step that walks --page and concatenates the page results into one collection. So a whole-backlog fetch still forces every caller to hand-loop pages outside ward-kdl.

Ask

Add a list-all action on the forgejo surface that pages the granted list issue leaf and concatenates results until exhaustion - stop when a page returns fewer than --limit items, or gate on X-Total-Count. Inputs mirror issue list (owner, repo, --state, --labels, ...) minus --page.

Prefer generalizing the mechanism over a one-off: a reusable paginate / collect step type in the action DSL (loop a list leaf over an incrementing page param, accumulate into one array) would serve every paginated list leaf - issues, PRs, tasks, org members - not just this one.

Consumer

agentic-os goose-triage (scripts/goose-triage.py) fetches open issues via coily ops forgejo issue list, which caps at 50 with no page flag, so on a backlog >50 it triages and now applies labels over a partial set and only warns. Once its fetch migrates onto ward-kdl ops forgejo issue list-all, that cap and the partial-backlog warning both go away. See agentic-os docs/goose-triage.md.

Moved from coilyco-flight-deck/agentic-os#241 (originally scoped as a goose-triage-local page loop; the real fix is this ward-kdl primitive).

## Feature: a `list-all` (auto-paginating) action for the forgejo surface `ward-kdl ops forgejo issue list` already exposes the raw Forgejo paging primitives `--page` (1-based) and `--limit` (page size) - the params coily's hand-rolled `issue list` never had. So the missing piece is no longer a flag; it is the **loop**. The composite-verb DSL today (`cmd/ward-kdl/ward-kdl.forgejo.guardfile.kdl`) has two step types: - `call <verb>` - one granted call, threading `$step.field` data forward. - `poll <verb>` - re-run the same call on an interval `until` a JMESPath condition holds, keeping the **last** result (used by `ci-watch`). Neither **accumulates across iterations**. There is no step that walks `--page` and concatenates the page results into one collection. So a whole-backlog fetch still forces every caller to hand-loop pages outside ward-kdl. ### Ask Add a `list-all` action on the forgejo surface that pages the granted `list issue` leaf and concatenates results until exhaustion - stop when a page returns fewer than `--limit` items, or gate on `X-Total-Count`. Inputs mirror `issue list` (`owner`, `repo`, `--state`, `--labels`, ...) minus `--page`. Prefer generalizing the mechanism over a one-off: a reusable `paginate` / `collect` step type in the action DSL (loop a `list` leaf over an incrementing page param, accumulate into one array) would serve every paginated `list` leaf - issues, PRs, tasks, org members - not just this one. ### Consumer agentic-os `goose-triage` (`scripts/goose-triage.py`) fetches open issues via `coily ops forgejo issue list`, which caps at 50 with no page flag, so on a backlog >50 it triages and now applies labels over a **partial** set and only warns. Once its fetch migrates onto `ward-kdl ops forgejo issue list-all`, that cap and the partial-backlog warning both go away. See agentic-os `docs/goose-triage.md`. Moved from coilyco-flight-deck/agentic-os#241 (originally scoped as a goose-triage-local page loop; the real fix is this ward-kdl primitive).
coilysiren changed title from goose-triage: paginated fetch for whole-backlog triage to ward-kdl: list-all (auto-paginating) action for forgejo issue list 2026-06-18 01:42:26 +00:00
Author
Owner
https://forgejo.coilysiren.me/coilyco-flight-deck/ward/issues/131
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
coilyco-flight-deck/agentic-os#241
No description provided.