bug(actions): run ids diverge from the web run numbers with no bridge - and runs ignores limit=, returning every run with full event payloads #157

Closed
opened 2026-07-16 16:28:57 +00:00 by hexajon · 0 comments
hexajon commented 2026-07-16 16:28:57 +00:00 (Migrated from codeberg.org)

Three related defects on madt_actions / madtea actions, found 2026-07-16 while pulling the log for a failed CI run:

1. Web run numbers 404 with no explanation

Every Actions URL uses the repo-scoped run number (.../actions/runs/313/...), but run_get/jobs/rerun accept only the global API id (this run's id is 5599721). Pasting the number from the URL - the only identifier a person ever sees - gets a bare API error 404: resource does not exist, with nothing pointing at the number-vs-id mismatch.

Ask, in preference order:

  • Accept the web run number transparently: when run_id looks like a small repo-scoped number, resolve it via the runs list (match on the run's repo-scoped index) before calling the id endpoint.
  • Failing that, the 404 for run_* actions must name the distinction and the remedy (list runs to find the id) - the current error reads like the run does not exist at all.

2. runs ignores limit=

madt_actions action=runs limit=5 raw_json=true returned all 316 runs. The pagination wrapper is present in the response, but the limit never reached (or never constrained) the underlying query.

3. Raw runs embed full event payloads

Each run in the raw response carries its complete event_payload (the entire webhook JSON, ~7 KB apiece). Combined with defect 2 the single call above produced a 6.2 MB result. The agent surface should strip or hard-truncate event_payload from list output (the schema/output budget rules already cap far smaller surfaces); anyone needing the payload can run_get a single run.

Acceptance

  • run_get with the number shown in a Codeberg Actions URL either succeeds or fails with an error naming the number-vs-id mismatch and the remedy.
  • runs limit=5 returns 5 items.
  • runs raw_json output contains no multi-KB event_payload blobs; the full-list call above lands within the normal output budget.
  • COMPAT.md notes any Forgejo/Gitea divergence these fixes expose.
Three related defects on `madt_actions` / `madtea actions`, found 2026-07-16 while pulling the log for a failed CI run: ## 1. Web run numbers 404 with no explanation Every Actions URL uses the repo-scoped run **number** (`.../actions/runs/313/...`), but `run_get`/`jobs`/`rerun` accept only the global API **id** (this run's id is 5599721). Pasting the number from the URL - the only identifier a person ever sees - gets a bare `API error 404: resource does not exist`, with nothing pointing at the number-vs-id mismatch. Ask, in preference order: - Accept the web run number transparently: when `run_id` looks like a small repo-scoped number, resolve it via the runs list (match on the run's repo-scoped index) before calling the id endpoint. - Failing that, the 404 for `run_*` actions must name the distinction and the remedy (list runs to find the id) - the current error reads like the run does not exist at all. ## 2. `runs` ignores `limit=` `madt_actions action=runs limit=5 raw_json=true` returned **all 316 runs**. The pagination wrapper is present in the response, but the limit never reached (or never constrained) the underlying query. ## 3. Raw runs embed full event payloads Each run in the raw response carries its complete `event_payload` (the entire webhook JSON, ~7 KB apiece). Combined with defect 2 the single call above produced a 6.2 MB result. The agent surface should strip or hard-truncate `event_payload` from list output (the schema/output budget rules already cap far smaller surfaces); anyone needing the payload can `run_get` a single run. ## Acceptance - `run_get` with the number shown in a Codeberg Actions URL either succeeds or fails with an error naming the number-vs-id mismatch and the remedy. - `runs limit=5` returns 5 items. - `runs raw_json` output contains no multi-KB `event_payload` blobs; the full-list call above lands within the normal output budget. - COMPAT.md notes any Forgejo/Gitea divergence these fixes expose.
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
sixfold-space/madtea#157
No description provided.