Document live-verified API gaps from the flux F8 soak #2
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "docs/live-verified-gaps"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
GAPS.md: eight live-verified divergences between the vendored Forgejo 15.0.2 spec and a real deployed server (acme.fjord.host, Forgejo 11.0.14+gitea-1.22.0, probed 2026-06-09/10 during the flux F8 soak).
The two that cost real debugging time:
runners/jobsanswers "what could a runner with exactly these labels run": thelabelsparam must fully cover a job'sruns_onset or the job is omitted, no param returns nothing, and the empty result is JSONnullrather than[]. A poller passing no labels is permanently blind while every response is a 200.ActionRunJob.attempt/.handleare 15.x spec additions; servers inside the 7.0.0 version floor but below 15 serve the old eight-field shape, so generated types that require them silently drop every job.The rest: the major Actions read surfaces (
actions/runs,actions/workflows, both runner-list routes) 404 below the spec version;actions/taskslists claimed tasks only;workflow_dispatch204s into runs invisible to every API list surface; the contents API splits create (POST) and update (PUT+sha) unlike GitHub; no queued-job webhook exists (the poll-primary rationale); never-used--ephemeralrunners leave offline records nothing sweeps (paragon #341 grew the sweep).Each entry follows the OPERATIONS.md patch-hygiene shape: spec vs wire, which consumer it burned, and the condition that retires the entry. README's table gains a GAPS.md row.
Relevant to both contract consumers: anything generating from
openapi.yamlcompiles types for fields and endpoints a floor-compliant server may not serve, and nothing in the generated code warns about that.