feat: add executable T4 API v1 contract and SDK#137
Draft
usr-bin-roygbiv wants to merge 70 commits into
Draft
Conversation
usr-bin-roygbiv
force-pushed
the
agent/t4-op03-public-api-contract
branch
2 times, most recently
from
July 22, 2026 01:44
39f06a5 to
899bd17
Compare
wolfiesch
reviewed
Jul 22, 2026
wolfiesch
left a comment
Collaborator
There was a problem hiding this comment.
Current head 2415979 is appropriately red after the new contract tests. One additional contract/client mismatch to resolve while implementing them: the OpenAPI snapshot schema permits up to 1,000 entries of 1,048,576 code points each, but the TypeScript client caps the complete JSON response at 16 MiB. A schema-valid snapshot of roughly 65 maximum-sized entries is rejected as a protocol error. Align the aggregate schema bound and client transport limit, and reject duplicate SSE cursors rather than yielding them as forward progress.
usr-bin-roygbiv
force-pushed
the
agent/t4-op03-public-api-contract
branch
2 times, most recently
from
July 22, 2026 04:16
48d8c5c to
60df5c3
Compare
added 24 commits
July 22, 2026 04:16
added 25 commits
July 22, 2026 04:16
usr-bin-roygbiv
force-pushed
the
agent/t4-op03-public-api-contract
branch
from
July 22, 2026 04:16
60df5c3 to
9ce270c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
OP-03 — Executable T4 API v1 contract and SDK
Architecture line item
OP-03. Add an executable OpenAPI 3.1 contract for the authenticated HTTPS T4 API v1 and a generated TypeScript SDK boundary with strict conformance fixtures. Depends on OP-01 in #135; this PR remains draft until that dependency merges and the exact final GitHub/Woodpecker runs are terminal green.
Observable contract
uniqueItems, invalid UTF-8, and Unicode code-point bound violations.T4-API-Version, mutationIdempotency-Replayed, and SSECache-Control: no-storeare required and validated where declared; 401 intentionally omits selected-version requirements..httpSSE callers use typedparseAs: "stream";watchSessionis the bounded validated API.Retry-Afterbecome terminal 502/nonretryable. RFC 9110 delay-seconds and all HTTP-date forms, including the rolling RFC 850 pivot, are validated.Non-goals
openapi-fetch, private infrastructure representation, retry-policy expansion, or change to cross-target idempotency scope.Migration and rollback
Additive package/workspace and CI changes only. No persisted data or deployed API is migrated. Consumers can adopt the generated v1 client and
watchSession; low-level SSE consumers must requestparseAs: "stream". Rollback before publication is a clean revert of this PR and removal of the unpublished packages. After adoption, rollback requires retaining the v1 compatibility boundary or an explicit major-version migration.Exact proof ledger
3ee50db5091ed1f23d3c9ef7bc7b5abe3134e048; GitHub run https://github.com/LycaonLLC/t4-code/actions/runs/29868362479 (generation88762273067, core88762273064); authoritative Woodpecker repo 38 pipeline 97: https://woodpecker-ci-dev.tailb18de3.ts.net/repos/38/pipeline/97.60d155e2d33ba792d87c0370b4c2da08f6de8772; GitHub run https://github.com/LycaonLLC/t4-code/actions/runs/29881688659; generation88803751573and core88803751538failed on the independent observable assertions.39f06a541d9ae0aac021ca40cf26410292a9279f.88804820690, core88804820689, and every matrix/verify job succeeded.8513874653(t4-api-generated-29878493403), generated schema SHA-256be0a3e3bf25e6b612053bb58e170d75b8807464da6ea4eb8d388c15512ac3b57; installed byte-for-byte without local generation.39f06a541d9ae0aac021ca40cf26410292a9279f: APPROVE, no P1/P2 findings.38:102, pipeline id13346, workflow13490, exact commit39f06a541d9ae0aac021ca40cf26410292a9279f: http://woodpecker-ci-dev.tailb18de3.ts.net/repos/z-peterson/t4-code/pipeline/102. Trigger accepted HTTP 200 (manual/development,deploy=false, idempotent=false); terminal result is pending.Dependency
Blocked on and references #135 (OP-01). Keep draft until #135 merges and both final CI systems are terminal green.