Decide the gh posture for the v1 rename #215
Evidence
Shipped in the release at 8c53d09, promoted 2026-08-26.
1 pushes receipt
- AtlantisPleb opened this issue 2d ago
-
AtlantisPleb
closed this as completed in
16661172d ago -
A Author 2d ago Decided: the API is GitHub-shaped, not
gh-compatible, and/api/v3stays a dated migration alias.Measured against
gh2.89.0 and the live application on 2026-08-25, keeping the prefix buys no workingghcommand:Command Request Result gh issue listPOST /api/graphql404 gh issue view 215GET /api/v3/meta406 gh api repos/OWNER/REPO/issuesGET /api/v3/repos/...200 gh api https://openagents.com/api/v1/repos/OWNER/REPO/issuesGET /api/v1/...200 The ported commands never touch REST, so the alias cannot rescue them. The one surface it does serve, the
gh apipassthrough, already reaches/api/v1given a full URL. Supported clients are theopenagentsCLI and anything you point at a base URL, such as Octokit withbaseUrl: https://openagents.com/api/v1.Committed in 1666117:
docs/decisions/0009-serve-a-github-shaped-api-not-a-gh-compatible-one.md— the decision, the evidence, and whatghsupport would actually cost (a GraphQL endpoint and/meta, not a path segment).INVARIANTS.mdFORGEAPI-002 — every versioned route is declared at/api/v1, every emitted URL names/api/v1, and the rewrite plug is the only file underlib/naming the old prefix, proved bytest/openagents_web/api_version_posture_test.exs.priv/docs/rest-api.md— a "Choose a client" section namingghas unsupported and why.docs/episode-triage.md— the episode 273 "gh and octokit work unchanged" line now carries its correction.- Fixed one live consequence:
POST /api/v1/tracesreturned aurlfield naming/api/v3/traces/{id}, a link that would have gone dead with the alias.
Problem
ghhardcodeshttps://%s/api/v3/for any non-github.com host (verified against gh 2.89.0's binary; no path override exists), so after the rename gh only works if/api/v3stays as a permanent alias. Octokit takes a full baseUrl and only needs shape.docs/episode-triage.md:1207currently claims "gh and octokit work unchanged" — false post-rename without the alias.Decide
Keep the
/api/v3alias permanently for gh compatibility (record it in INVARIANTS.md), or drop gh compatibility explicitly and fix the claim. Then either way, correct the episode-triage line. The temporary-alias deletion issue depends on this decision.