Repository navigation
chore(release): retire superseded beta prerelease artifacts - #7491
Conversation
Remove the 3.x beta checkpoints from dist/schemas, dist/compliance, and dist/protocol, keeping 3.2.0-beta.11 (frozen 3.2-beta docs selector), 3.2.0-beta.6 (training-agent retained checkpoint), and 3.1.0-beta.7 (TypeScript SDK side bundle). The runtime image had grown past its size gate on the rc.3 release branch; this frees about 1.9 GB. Regenerate the schema discovery index, move the SDK-only 3.1.0-beta.2 compliance bundle to package_only_versions, repoint documentation schema links to 3.2.0-rc.2, document the retirement in the version table, and let the immutable-artifact guard accept whole-tree deletions of tagged beta checkpoints while still rejecting in-place edits and rc/stable deletions. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — deletions inside immutable released dist/** artifacts plus a governance policy decision require human review.
This PR retires the 3.1.0-beta.0 release artifacts, deleting ~90+ files under dist/compliance/3.1.0-beta.0/**. The repo's LADON.md declares that dist/compliance/<semver>/ paths are append-only release records that are immutable after GA, including -beta.N paths — modifying/deleting a file inside an existing semver artifact is normally critical. Retiring immutable released beta artifacts is a protocol-policy decision the reviewer explicitly deferred to the arbiter, and it is not something Ladon should auto-clear.
Two independent escalation triggers apply:
- The high-risk flag is set and every
high_risk_reasonsentry is a(deleted)underdist/**(decision table row 3 → escalate). - The change is a governance/policy decision about release-artifact immutability that warrants explicit human/CODEOWNERS ratification, and
review_decisionisREVIEW_REQUIRED(notAPPROVED).
Escalation reasons
- Deletes 90+ files under
dist/compliance/3.1.0-beta.0/**— removal of immutable released artifacts; adopters may pin these paths. Requires human confirmation that retiring this beta line is sanctioned. - Policy decision to retire released beta artifacts should cite/establish governance precedent and be ratified by a human, not auto-approved.
Medium finding (non-blocking, note for reviewers)
- scripts/check-immutable-release-artifacts.cjs:69 —
isRetiredPrereleaseDeletionpermits any single-file deletion inside a-beta.Ntree despite advertising whole-tree deletion; a future partial deletion of a retained load-bearing beta would pass CI silently. Tighten to require whole-tree removal.
Why human review
- Deletes 90+ files under dist/compliance/3.1.0-beta.0/** — removal of immutable released release artifacts (append-only after GA per LADON.md); needs human/CODEOWNERS confirmation.
- Retiring released beta artifacts is a governance/protocol-policy decision the reviewer explicitly deferred to the arbiter; review_decision is REVIEW_REQUIRED, not APPROVED.
- high_risk is true and all high_risk_reasons are (deleted) entries under dist/** — decision-table row 3 requires escalation.
3.1.0-beta.5 is no longer a hosted compliance bundle, so an agent pinned only to 3.1-beta.5 correctly falls back to the canonical 3.0 target. Move the exact-pin cases to 3.1.0-beta.7, which remains hosted, and assert the retired-pin fallback explicitly. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Why
The runtime image size gate started failing on the rc.3 Version Packages branch (#7485): 7545 MiB against a 7424 MiB limit. Every prerelease cut adds a full schema bundle (~140 MiB) plus compliance and tarball artifacts, and
.dockerignorere-includesdist/schemas,dist/compliance, anddist/protocol, so the image had accumulated 101 schema versions (~5 GB). rc.2 passed with 66 MiB of headroom; rc.3 and every later cut would fail.What
Retire the superseded 3.x beta checkpoints from the three
distmounts.dist/schemas+dist/compliance+dist/protocolKept on purpose, with the reason each is load-bearing:
3.2.0-beta.11schemas: the frozen3.2-betadocumentation selector. The Addie docs indexer requiresdist/docs/<v>anddist/schemas/<v>for every selector in the Mintlify nav and throws otherwise.3.2.0-beta.6schemas and compliance: the training agent's retained checkpoint (SELLER_GOVERNANCE_DISCOVERY_ADCP_VERSION), asserted bytests/sdk-runtime-compat.test.cjs.3.1.0-beta.7schemas and compliance:@adcp/sdk'ssync-schemas:3.1-betaside bundle, fetched duringprepublishOnly.Supporting changes:
dist/schemas/index.jsonregenerated from the surviving directories (91 → 71 versions); no alias pointed at a removed version.static/compliance/published-versions.json: removed betas dropped frompublished_versions;3.1.0-beta.2, which the current@adcp/sdkpackage still ships, moved topackage_only_versionssocheck-published-compliance-versionsstays green.scripts/check-immutable-release-artifacts.cjs: whole-tree deletion of a tagged-beta.Nversion is now permitted; in-place edits and any deletion of rc/stable artifacts still fail. Tests added for both.scripts/check-immutable-release-artifacts.cjsandscripts/check-changeset-protocol-scope.cjs:git diff --name-statusnow runs with a 64 MiBmaxBuffer; the default 1 MiB buffer crashed both scripts (ENOBUFS) on this 27k-file diff, and the guard runs in CI's build-check.3.2.0-beta.0and3.2.0-beta.10bundles repointed to3.2.0-rc.2(all targets verified present);versions.mdxlegend and the beta.0 row now describe the retirement.Public URL impact
None expected.
adcontextprotocol.org/schemas|compliance|protocol/*are served by the Cloudflare artifact worker from the R2 bucket with immutable caching (verified: beta bundle URLs return 200 withserver: cloudflare). The R2 backfill helper deliberately refuses--delete, so previously published beta objects stay in the bucket. The versions page now states beta URLs are served best-effort only.Not in this PR
dist/docsbeta snapshots (about 235 MiB, allowlisted in.dockerignore) and the frozen3.2-betadocs selector itself. Retiring those touches the release-docs nav tooling and is a separate decision.Validation
node tests/immutable-release-artifacts.test.cjsnode --test tests/published-compliance-versions.test.cjs tests/dist-schema-version-ids.test.cjs tests/sdk-runtime-compat.test.cjsnode scripts/check-published-compliance-versions.cjsnode scripts/check-immutable-release-artifacts.cjs origin/mainandnode scripts/check-changeset-protocol-scope.cjs origin/mainnpx vitest run tests/addie/cross-publisher-frequency-docs.test.ts(the test that caught the beta.11 selector dependency)npm run test:unit(71 files, 1063 tests) andnpm run typechecklint:schema-links, docs navigation. The local storyboard matrix was skipped withADCP_SKIP_STORYBOARD_MATRIX=1; CI runs it.precommit:server-unit, up to 25 minutes); CI runs it.🤖 Generated with Claude Code
Open workspace in Conductor