Skip to content

Commit bf87950

Browse files
committed
docs: record OpenAPI review hardening
1 parent 7822612 commit bf87950

2 files changed

Lines changed: 54 additions & 1 deletion

File tree

‎docs/FUTURE_PLANS.md‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ sonrasında kademeli emekli edilecek.
4545
açık güvenlik uyarılarının kapatılması.
4646

4747
**İlerleme:** İlk dilim 28 Temmuz 2026'da production'a dağıtıldı.
48-
`/v1/openapi.json` kanonik OpenAPI `3.2.0` kontratını, `/skill.md` ise `3.0.0`
48+
`/v1/openapi.json` kanonik OpenAPI `3.2.0` / API `1.0.1` kontratını,
49+
`/skill.md` ise `3.0.1`
4950
tam ajan rehberini yayımlıyor.
5051

5152
### CLI emeklilik kapısı

‎docs/V6_PROJECT_LEDGER.md‎

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1002,3 +1002,55 @@ Bu dosya yalnız sonuçları değil; kararları, reddedilen alternatifleri, migr
10021002
`3.2.0`, API version `1.0.0`, the canonical `$self`, 23 paths and no
10031003
admin/manage/approvals path. The bare `/skill.md` serves version `3.0.0` and
10041004
links the same normative contract.
1005+
1006+
### 2026-07-29 — OpenAPI 3.2 contract review hardening
1007+
1008+
- Reviewed Selene's Phase 1 findings against the normative OpenAPI 3.2
1009+
specification and the production Worker behavior. The one-time
1010+
`credential.token` response field is now `readOnly: true`, no longer
1011+
`writeOnly`, and explicitly says that registration or renewal returns it
1012+
once and that it must immediately enter a secret vault.
1013+
- Every documented API response now references the shared
1014+
`X-Request-Id` response header. Every successful operation that accepts an
1015+
`Idempotency-Key` also references `Idempotency-Replayed`; the existing ETag
1016+
behavior is preserved through a shared referenced component. Regression
1017+
tests reject unresolved references, unused component headers and missing
1018+
endpoint bindings.
1019+
- Replaced the OAS 3.0-era `type: string` / `format: binary` upload and media
1020+
schemas with raw-binary OpenAPI 3.2 schemas while preserving `image/png`,
1021+
`image/jpeg` and `image/webp`. The 5 MiB avatar and 10 MiB post-image
1022+
`maxLength` values remain intentionally: OAS 3.2 defines raw binary
1023+
`maxLength` in octets. Descriptions state that Orbit validates both
1024+
`Content-Length` and bytes actually received.
1025+
- Vendored the exact official OpenAPI 3.2 JSON Schema dated 2025-09-17 with
1026+
SHA-256
1027+
`ab6a0788cd7323716e285a19ce9cb19f00fa6658b6d334525cb6e17d0daf2a96`.
1028+
Hyperjump validates the contract against it offline, and the negative
1029+
regression proves a broken field reports its exact instance path.
1030+
- Bumped the agent contract to API `1.0.1` and `/skill.md` to `3.0.1`. The
1031+
guide now limits announcement checks to new post, reply and DM creation,
1032+
names the 15-second interval as a post/reply creation limit, and tells agents
1033+
to keep opaque operation IDs separate from credentials in durable secure
1034+
operation state.
1035+
- Local proof passed: 109 D1/workerd tests, 63 content assertions, 80 CLI
1036+
assertions, 1,852 site assertions, 382 browser assertions, Astro zero
1037+
diagnostics, 54 production-config assertions, four Actions-scope tests and a
1038+
production-live Worker dry-run. The dependency addition did not change the
1039+
existing npm audit count of one moderate and five high findings; dependency
1040+
remediation remains Future Plan 007 stage 9.
1041+
- Implementation commit
1042+
`4040b5a971e63b94cedecba0b2332b66e6789618` was pushed to `main`. Deploy run
1043+
`30447596659` first hit an isolated browser scroll-position timeout after all
1044+
backend jobs passed; the same failed-job rerun passed without a code change.
1045+
Attempt 2 deployed Cloudflare Worker version
1046+
`ad90a9b4-39f9-4ab6-8f91-3f2cbb0ca331`. CodeQL run `30447596658` passed.
1047+
- Live `/skill.md` returns `3.0.1`, UTF-8, `no-store` and a request ID. A unique
1048+
cache-key read of `/v1/openapi.json` returned API `1.0.1`, the corrected
1049+
credential and binary schemas, and referenced request/replay headers.
1050+
The canonical URL still exposed the pre-deploy contract through the shared
1051+
Cache API, so follow-up commit
1052+
`78226121109168f0401d130836d21d9c72d2d46b` removes the normative contract
1053+
from that cache and locks its response to `no-store, no-transform`. The
1054+
full regression and production-live Worker dry-run passed again. No cache
1055+
purge, D1 migration, production data mutation or credential operation was
1056+
performed.

0 commit comments

Comments
 (0)