Repository navigation
fix(release): fence publication and recover superseded releases - #7510
Conversation
19637e9 to
60647c7
Compare
60647c7 to
afaef18
Compare
bf980c0 to
541d258
Compare
01f90fe to
32496b5
Compare
32496b5 to
f789034
Compare
Require validate_input for CTV experience and premium display validation while retaining controller workflow prerequisites. Verify source and generated bundle selection, unavailable-fixture neutrality and genuine validator failures. Reconcile only the 32 controller seed passes removed from brand and governance in both synchronized matrix floors. Prove the tenants lack the validator through live tool discovery and exact old-gate adapter replay. Preserve all other floors. Related issue: #7404 Required order: #7506 web+worker deploy, #7510, refreshed #7507 deploy, then public-card verification. This patch alone does not complete the tracking issue.
|
RC5 train refresh: merged current |
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — gated-path approval gate is not satisfied.
This PR modifies three files under .github/workflows/**, which are deterministically under a hard approval gate (gated_paths: true), and review_decision is REVIEW_REQUIRED (not APPROVED). Per decision rule row 2, the outcome must be escalate — human/CODEOWNERS review is required before this can merge.
Escalation reasons
.github/workflows/deploy.yml(modified) — under hard approval gate.github/workflows/**; requires human/CODEOWNERS approval..github/workflows/recover-protocol-cdn.yml(modified) — same gate..github/workflows/release.yml(modified) — same gate.
Findings
No blocking or medium code defects were reported. The reviewer verified the freshness fence, provenance/approval gates, the Changesets lease-and-quarantine transaction, and the disabled bulk backfill against the 149-case harness. No protocol-surface or dist/** changes. Two non-blocking follow-ups were noted (changeset-scope narrowing for release.yml; main-only dispatch constraint on recover-protocol-cdn.yml), neither rising to a Medium.
The escalation is driven purely by the unsatisfied gated-path gate, not by code quality. Once a human/CODEOWNERS approval flips review_decision to APPROVED, this clean diff can fall through to approve on a subsequent run.
Why human review
- .github/workflows/deploy.yml (modified) is under the hard approval gate
.github/workflows/**and review_decision is REVIEW_REQUIRED — human/CODEOWNERS approval required. - .github/workflows/recover-protocol-cdn.yml (modified) is under the hard approval gate
.github/workflows/**and review_decision is REVIEW_REQUIRED — human/CODEOWNERS approval required. - .github/workflows/release.yml (modified) is under the hard approval gate
.github/workflows/**and review_decision is REVIEW_REQUIRED — human/CODEOWNERS approval required. - This PR touches a path under a hard, non-overridable approval gate (.github/workflows/deploy.yml (modified) matches
.github/workflows/**; .github/workflows/recover-protocol-cdn.yml (modified) matches.github/workflows/**; .github/workflows/release.yml (modified) matches.github/workflows/**) and the current GitHub review decision is 'REVIEW_REQUIRED', not APPROVED. This is a hard gate enforced in code — Ladon cannot auto-approve until a human/CODEOWNERS approval is recorded, regardless of how clean the diff is.
…stration training-agent-storyboards.yml is a protocol-scoped path (#7510), so changing it requires a changeset. A CI branch-filter change should not carry a release changeset, and policy forbids an empty one to satisfy CI. Register 3.2.x there in a follow-up that already carries a real 3.2.x patch changeset. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…stration training-agent-storyboards.yml is a protocol-scoped path (#7510), so changing it requires a changeset. A CI branch-filter change should not carry a release changeset, and policy forbids an empty one to satisfy CI. Register 3.2.x there in a follow-up that already carries a real 3.2.x patch changeset. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
….x (#7860) * chore(ci): add 3.2.x maintenance line to release and CI workflows Register the 3.2.x branch (created from the v3.2.1 Version Packages merge c32bd78) with Release (push trigger, dispatch recovery case, and the storyboard verification gates), the release-state and changesets fences, Build Check, Changeset Check, CodeQL, Dependency Review, apps/web check, and training-agent storyboards. Add forward-merge-3.2.yml, a 3.2.x copy of forward-merge-3.1.yml, and cover it in the release-workflow immutability test. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * revert(release): restore the full storyboard gate in verify-release (#7840) Reverts the temporary 3.2.1 GA reuse of the CI storyboard verification (#7836) now that v3.2.1 is published. The proper replacement is tracked in Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit a2f12a4) * chore(ci): leave training-agent-storyboards.yml out of the 3.2.x registration training-agent-storyboards.yml is a protocol-scoped path (#7510), so changing it requires a changeset. A CI branch-filter change should not carry a release changeset, and policy forbids an empty one to satisfy CI. Register 3.2.x there in a follow-up that already carries a real 3.2.x patch changeset. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * test: stop assuming the 3.2 line has no stable release (#7839) The 3.2.1 GA Version Packages cut makes two tests fail: - mcp-schema-projection hardcoded surface_version '3.2.0'. Derive the expected active surface from package.json: x.y.0 while the line is in prerelease, the released package version once it is stable (3.2.1, since 3.2.0 is withdrawn). - hosted-compliance-version used the real 3.2 line as its RC-only fixture. Move the #7356 guard to an isolated fixture tree with an RC-only 3.3 line, and assert the RC resolves so the throw is not vacuous. Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit 3dee3a4) * chore: snapshot docs for v3.2.1 (#7842) * chore: snapshot docs for v3.2.1 * test: derive docs version selectors from docs.json after the 3.2.1 snapshot The v3.2.1 docs snapshot makes 3.2 the default and retires the 3.2-rc and 3.2-beta selectors, breaking tests pinned to the pre-GA navigation. - audio-radio-formats: check the radio guide in every 3.2 navigation in docs.json instead of requiring a 3.2-beta entry. - docs-indexer: resolve the default and newest 3.2 selectors at run time; pin the default to docs.json's default stable snapshot; keep the 3.1/3.0/2.5 no-leak assertions; accept either 3.2 format registry guide. - addie/schema-tools: build the selector matrix from DOCS_SCHEMA_RELEASES and DEFAULT_SCHEMA_VERSION; map pinned 3.2 prerelease $schema URLs to the live channel or, after GA, the stable 3.2 snapshot. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: aao-release-bot[bot] <280565558+aao-release-bot[bot]@users.noreply.github.com> Co-authored-by: Brian O'Kelley <bokelley@scope3.com> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit 30ec290) * docs: align the GA banner with the 3.2 message (#7843) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit fe3bf93) * fix(compliance): track active SDK publication tags * test(docs): allow exact 3.2 release branch bootstrap * test(docs): pin GA branch bootstrap commit for shallow CI * ci(release): gate 3.2 storyboards before maintenance merges --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: aao-release-bot[bot] <280565558+aao-release-bot[bot]@users.noreply.github.com>
) * chore(ci): add 3.2.x maintenance line to release and CI workflows Register the 3.2.x branch (created from the v3.2.1 Version Packages merge c32bd78) with Release (push trigger, dispatch recovery case, and the storyboard verification gates), the release-state and changesets fences, Build Check, Changeset Check, CodeQL, Dependency Review, apps/web check, and training-agent storyboards. Add forward-merge-3.2.yml, a 3.2.x copy of forward-merge-3.1.yml, and cover it in the release-workflow immutability test. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * chore(ci): leave training-agent-storyboards.yml out of the 3.2.x registration training-agent-storyboards.yml is a protocol-scoped path (#7510), so changing it requires a changeset. A CI branch-filter change should not carry a release changeset, and policy forbids an empty one to satisfy CI. Register 3.2.x there in a follow-up that already carries a real 3.2.x patch changeset. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* docs(release): backport the 3.2.1 docs snapshot and GA default to 3.2.x (#7868) * chore: snapshot docs for v3.2.1 (#7842) * chore: snapshot docs for v3.2.1 * test: derive docs version selectors from docs.json after the 3.2.1 snapshot The v3.2.1 docs snapshot makes 3.2 the default and retires the 3.2-rc and 3.2-beta selectors, breaking tests pinned to the pre-GA navigation. - audio-radio-formats: check the radio guide in every 3.2 navigation in docs.json instead of requiring a 3.2-beta entry. - docs-indexer: resolve the default and newest 3.2 selectors at run time; pin the default to docs.json's default stable snapshot; keep the 3.1/3.0/2.5 no-leak assertions; accept either 3.2 format registry guide. - addie/schema-tools: build the selector matrix from DOCS_SCHEMA_RELEASES and DEFAULT_SCHEMA_VERSION; map pinned 3.2 prerelease $schema URLs to the live channel or, after GA, the stable 3.2 snapshot. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: aao-release-bot[bot] <280565558+aao-release-bot[bot]@users.noreply.github.com> Co-authored-by: Brian O'Kelley <bokelley@scope3.com> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit 30ec290) * docs: align the GA banner with the 3.2 message (#7843) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit fe3bf93) * test(docs): treat the stable branch as its own docs surface in CI On the stable maintenance branch (or a PR into it), comparing navigation against the branch's own pre-change tip rejects every navigation change, including the GA flip that makes it the stable surface. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: aao-release-bot[bot] <280565558+aao-release-bot[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * chore(release): register 3.2.x and carry post-tag GA hygiene onto 3.2.x (#7860) * chore(ci): add 3.2.x maintenance line to release and CI workflows Register the 3.2.x branch (created from the v3.2.1 Version Packages merge c32bd78) with Release (push trigger, dispatch recovery case, and the storyboard verification gates), the release-state and changesets fences, Build Check, Changeset Check, CodeQL, Dependency Review, apps/web check, and training-agent storyboards. Add forward-merge-3.2.yml, a 3.2.x copy of forward-merge-3.1.yml, and cover it in the release-workflow immutability test. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * revert(release): restore the full storyboard gate in verify-release (#7840) Reverts the temporary 3.2.1 GA reuse of the CI storyboard verification (#7836) now that v3.2.1 is published. The proper replacement is tracked in Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit a2f12a4) * chore(ci): leave training-agent-storyboards.yml out of the 3.2.x registration training-agent-storyboards.yml is a protocol-scoped path (#7510), so changing it requires a changeset. A CI branch-filter change should not carry a release changeset, and policy forbids an empty one to satisfy CI. Register 3.2.x there in a follow-up that already carries a real 3.2.x patch changeset. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * test: stop assuming the 3.2 line has no stable release (#7839) The 3.2.1 GA Version Packages cut makes two tests fail: - mcp-schema-projection hardcoded surface_version '3.2.0'. Derive the expected active surface from package.json: x.y.0 while the line is in prerelease, the released package version once it is stable (3.2.1, since 3.2.0 is withdrawn). - hosted-compliance-version used the real 3.2 line as its RC-only fixture. Move the #7356 guard to an isolated fixture tree with an RC-only 3.3 line, and assert the RC resolves so the throw is not vacuous. Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit 3dee3a4) * chore: snapshot docs for v3.2.1 (#7842) * chore: snapshot docs for v3.2.1 * test: derive docs version selectors from docs.json after the 3.2.1 snapshot The v3.2.1 docs snapshot makes 3.2 the default and retires the 3.2-rc and 3.2-beta selectors, breaking tests pinned to the pre-GA navigation. - audio-radio-formats: check the radio guide in every 3.2 navigation in docs.json instead of requiring a 3.2-beta entry. - docs-indexer: resolve the default and newest 3.2 selectors at run time; pin the default to docs.json's default stable snapshot; keep the 3.1/3.0/2.5 no-leak assertions; accept either 3.2 format registry guide. - addie/schema-tools: build the selector matrix from DOCS_SCHEMA_RELEASES and DEFAULT_SCHEMA_VERSION; map pinned 3.2 prerelease $schema URLs to the live channel or, after GA, the stable 3.2 snapshot. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: aao-release-bot[bot] <280565558+aao-release-bot[bot]@users.noreply.github.com> Co-authored-by: Brian O'Kelley <bokelley@scope3.com> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit 30ec290) * docs: align the GA banner with the 3.2 message (#7843) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit fe3bf93) * fix(compliance): track active SDK publication tags * test(docs): allow exact 3.2 release branch bootstrap * test(docs): pin GA branch bootstrap commit for shallow CI * ci(release): gate 3.2 storyboards before maintenance merges --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: aao-release-bot[bot] <280565558+aao-release-bot[bot]@users.noreply.github.com> --------- Co-authored-by: aao-release-bot[bot] <280565558+aao-release-bot[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* docs(release): backport the 3.2.1 docs snapshot and GA default to 3.2.x (#7868) * chore: snapshot docs for v3.2.1 (#7842) * chore: snapshot docs for v3.2.1 * test: derive docs version selectors from docs.json after the 3.2.1 snapshot The v3.2.1 docs snapshot makes 3.2 the default and retires the 3.2-rc and 3.2-beta selectors, breaking tests pinned to the pre-GA navigation. - audio-radio-formats: check the radio guide in every 3.2 navigation in docs.json instead of requiring a 3.2-beta entry. - docs-indexer: resolve the default and newest 3.2 selectors at run time; pin the default to docs.json's default stable snapshot; keep the 3.1/3.0/2.5 no-leak assertions; accept either 3.2 format registry guide. - addie/schema-tools: build the selector matrix from DOCS_SCHEMA_RELEASES and DEFAULT_SCHEMA_VERSION; map pinned 3.2 prerelease $schema URLs to the live channel or, after GA, the stable 3.2 snapshot. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: aao-release-bot[bot] <280565558+aao-release-bot[bot]@users.noreply.github.com> Co-authored-by: Brian O'Kelley <bokelley@scope3.com> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit 30ec290) * docs: align the GA banner with the 3.2 message (#7843) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit fe3bf93) * test(docs): treat the stable branch as its own docs surface in CI On the stable maintenance branch (or a PR into it), comparing navigation against the branch's own pre-change tip rejects every navigation change, including the GA flip that makes it the stable surface. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: aao-release-bot[bot] <280565558+aao-release-bot[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * chore(release): register 3.2.x and carry post-tag GA hygiene onto 3.2.x (#7860) * chore(ci): add 3.2.x maintenance line to release and CI workflows Register the 3.2.x branch (created from the v3.2.1 Version Packages merge c32bd78) with Release (push trigger, dispatch recovery case, and the storyboard verification gates), the release-state and changesets fences, Build Check, Changeset Check, CodeQL, Dependency Review, apps/web check, and training-agent storyboards. Add forward-merge-3.2.yml, a 3.2.x copy of forward-merge-3.1.yml, and cover it in the release-workflow immutability test. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * revert(release): restore the full storyboard gate in verify-release (#7840) Reverts the temporary 3.2.1 GA reuse of the CI storyboard verification (#7836) now that v3.2.1 is published. The proper replacement is tracked in Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit a2f12a4) * chore(ci): leave training-agent-storyboards.yml out of the 3.2.x registration training-agent-storyboards.yml is a protocol-scoped path (#7510), so changing it requires a changeset. A CI branch-filter change should not carry a release changeset, and policy forbids an empty one to satisfy CI. Register 3.2.x there in a follow-up that already carries a real 3.2.x patch changeset. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * test: stop assuming the 3.2 line has no stable release (#7839) The 3.2.1 GA Version Packages cut makes two tests fail: - mcp-schema-projection hardcoded surface_version '3.2.0'. Derive the expected active surface from package.json: x.y.0 while the line is in prerelease, the released package version once it is stable (3.2.1, since 3.2.0 is withdrawn). - hosted-compliance-version used the real 3.2 line as its RC-only fixture. Move the #7356 guard to an isolated fixture tree with an RC-only 3.3 line, and assert the RC resolves so the throw is not vacuous. Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit 3dee3a4) * chore: snapshot docs for v3.2.1 (#7842) * chore: snapshot docs for v3.2.1 * test: derive docs version selectors from docs.json after the 3.2.1 snapshot The v3.2.1 docs snapshot makes 3.2 the default and retires the 3.2-rc and 3.2-beta selectors, breaking tests pinned to the pre-GA navigation. - audio-radio-formats: check the radio guide in every 3.2 navigation in docs.json instead of requiring a 3.2-beta entry. - docs-indexer: resolve the default and newest 3.2 selectors at run time; pin the default to docs.json's default stable snapshot; keep the 3.1/3.0/2.5 no-leak assertions; accept either 3.2 format registry guide. - addie/schema-tools: build the selector matrix from DOCS_SCHEMA_RELEASES and DEFAULT_SCHEMA_VERSION; map pinned 3.2 prerelease $schema URLs to the live channel or, after GA, the stable 3.2 snapshot. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: aao-release-bot[bot] <280565558+aao-release-bot[bot]@users.noreply.github.com> Co-authored-by: Brian O'Kelley <bokelley@scope3.com> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit 30ec290) * docs: align the GA banner with the 3.2 message (#7843) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit fe3bf93) * fix(compliance): track active SDK publication tags * test(docs): allow exact 3.2 release branch bootstrap * test(docs): pin GA branch bootstrap commit for shallow CI * ci(release): gate 3.2 storyboards before maintenance merges --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: aao-release-bot[bot] <280565558+aao-release-bot[bot]@users.noreply.github.com> * docs(accounts): clarify account references before provisioning (#7871) (#7884) * docs(accounts): clarify account references before provisioning Spells out what the error table and cache_scope contract already required. A buyer-declared natural key resolves only after provisioning. An unresolved account that the seller doesn't lazily provision returns ACCOUNT_NOT_FOUND even where account is optional. Buyers omit unprovisioned keys and send brand. Account errors are not seller-health signals. An echoed account_id is a seller handle. ACCOUNT_NOT_FOUND recovery is now consistent. * docs(signals): note unresolved account behavior on get_signals --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * docs: fix contradictions between trust docs and the spec (#7881) (#7890) * docs: fix contradictions between trust docs and the spec - verification overview: anchor on the agent URL, not response signing - relationship_trust values and house_domain instead of parent_house - direct, delegated, and ad_network all pair with delegation_type - missing authorized_operators listing means reject or manual review - agents[] examples instead of deprecated brand_agent/rights_agent - schema spec links point to by-layer/L1/security * docs: address review on trust docs consistency - name verify_brand_claim(s) as the only signed response payloads - give the pinned webhook key adcp_use and key_ops - one URL per agent role; scope the Brand Agent resolution step - fix leftover glossary, brand-agent checklist, and schema example * docs: keep the pin example to schema-declared key fields --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * docs(media-buy): backport opportunity usage advisory to 3.2 (#7912) * Version Packages (#7888) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * test(compliance): cover the released 3.2.2 hosted bundle --------- Co-authored-by: aao-release-bot[bot] <280565558+aao-release-bot[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…#7541) Require validate_input for CTV experience and premium display validation while retaining controller workflow prerequisites. Verify source and generated bundle selection, unavailable-fixture neutrality and genuine validator failures. Reconcile only the 32 controller seed passes removed from brand and governance in both synchronized matrix floors. Prove the tenants lack the validator through live tool discovery and exact old-gate adapter replay. Preserve all other floors. Related issue: #7404 Required order: #7506 web+worker deploy, #7510, refreshed #7507 deploy, then public-card verification. This patch alone does not complete the tracking issue.
* docs(release): backport the 3.2.1 docs snapshot and GA default to 3.2.x (#7868) * chore: snapshot docs for v3.2.1 (#7842) * chore: snapshot docs for v3.2.1 * test: derive docs version selectors from docs.json after the 3.2.1 snapshot The v3.2.1 docs snapshot makes 3.2 the default and retires the 3.2-rc and 3.2-beta selectors, breaking tests pinned to the pre-GA navigation. - audio-radio-formats: check the radio guide in every 3.2 navigation in docs.json instead of requiring a 3.2-beta entry. - docs-indexer: resolve the default and newest 3.2 selectors at run time; pin the default to docs.json's default stable snapshot; keep the 3.1/3.0/2.5 no-leak assertions; accept either 3.2 format registry guide. - addie/schema-tools: build the selector matrix from DOCS_SCHEMA_RELEASES and DEFAULT_SCHEMA_VERSION; map pinned 3.2 prerelease $schema URLs to the live channel or, after GA, the stable 3.2 snapshot. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: aao-release-bot[bot] <280565558+aao-release-bot[bot]@users.noreply.github.com> Co-authored-by: Brian O'Kelley <bokelley@scope3.com> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit 30ec290) * docs: align the GA banner with the 3.2 message (#7843) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit fe3bf93) * test(docs): treat the stable branch as its own docs surface in CI On the stable maintenance branch (or a PR into it), comparing navigation against the branch's own pre-change tip rejects every navigation change, including the GA flip that makes it the stable surface. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: aao-release-bot[bot] <280565558+aao-release-bot[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * chore(release): register 3.2.x and carry post-tag GA hygiene onto 3.2.x (#7860) * chore(ci): add 3.2.x maintenance line to release and CI workflows Register the 3.2.x branch (created from the v3.2.1 Version Packages merge c32bd78) with Release (push trigger, dispatch recovery case, and the storyboard verification gates), the release-state and changesets fences, Build Check, Changeset Check, CodeQL, Dependency Review, apps/web check, and training-agent storyboards. Add forward-merge-3.2.yml, a 3.2.x copy of forward-merge-3.1.yml, and cover it in the release-workflow immutability test. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * revert(release): restore the full storyboard gate in verify-release (#7840) Reverts the temporary 3.2.1 GA reuse of the CI storyboard verification (#7836) now that v3.2.1 is published. The proper replacement is tracked in Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit a2f12a4) * chore(ci): leave training-agent-storyboards.yml out of the 3.2.x registration training-agent-storyboards.yml is a protocol-scoped path (#7510), so changing it requires a changeset. A CI branch-filter change should not carry a release changeset, and policy forbids an empty one to satisfy CI. Register 3.2.x there in a follow-up that already carries a real 3.2.x patch changeset. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * test: stop assuming the 3.2 line has no stable release (#7839) The 3.2.1 GA Version Packages cut makes two tests fail: - mcp-schema-projection hardcoded surface_version '3.2.0'. Derive the expected active surface from package.json: x.y.0 while the line is in prerelease, the released package version once it is stable (3.2.1, since 3.2.0 is withdrawn). - hosted-compliance-version used the real 3.2 line as its RC-only fixture. Move the #7356 guard to an isolated fixture tree with an RC-only 3.3 line, and assert the RC resolves so the throw is not vacuous. Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit 3dee3a4) * chore: snapshot docs for v3.2.1 (#7842) * chore: snapshot docs for v3.2.1 * test: derive docs version selectors from docs.json after the 3.2.1 snapshot The v3.2.1 docs snapshot makes 3.2 the default and retires the 3.2-rc and 3.2-beta selectors, breaking tests pinned to the pre-GA navigation. - audio-radio-formats: check the radio guide in every 3.2 navigation in docs.json instead of requiring a 3.2-beta entry. - docs-indexer: resolve the default and newest 3.2 selectors at run time; pin the default to docs.json's default stable snapshot; keep the 3.1/3.0/2.5 no-leak assertions; accept either 3.2 format registry guide. - addie/schema-tools: build the selector matrix from DOCS_SCHEMA_RELEASES and DEFAULT_SCHEMA_VERSION; map pinned 3.2 prerelease $schema URLs to the live channel or, after GA, the stable 3.2 snapshot. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: aao-release-bot[bot] <280565558+aao-release-bot[bot]@users.noreply.github.com> Co-authored-by: Brian O'Kelley <bokelley@scope3.com> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit 30ec290) * docs: align the GA banner with the 3.2 message (#7843) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit fe3bf93) * fix(compliance): track active SDK publication tags * test(docs): allow exact 3.2 release branch bootstrap * test(docs): pin GA branch bootstrap commit for shallow CI * ci(release): gate 3.2 storyboards before maintenance merges --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: aao-release-bot[bot] <280565558+aao-release-bot[bot]@users.noreply.github.com> * docs(accounts): clarify account references before provisioning (#7871) (#7884) * docs(accounts): clarify account references before provisioning Spells out what the error table and cache_scope contract already required. A buyer-declared natural key resolves only after provisioning. An unresolved account that the seller doesn't lazily provision returns ACCOUNT_NOT_FOUND even where account is optional. Buyers omit unprovisioned keys and send brand. Account errors are not seller-health signals. An echoed account_id is a seller handle. ACCOUNT_NOT_FOUND recovery is now consistent. * docs(signals): note unresolved account behavior on get_signals --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * docs: fix contradictions between trust docs and the spec (#7881) (#7890) * docs: fix contradictions between trust docs and the spec - verification overview: anchor on the agent URL, not response signing - relationship_trust values and house_domain instead of parent_house - direct, delegated, and ad_network all pair with delegation_type - missing authorized_operators listing means reject or manual review - agents[] examples instead of deprecated brand_agent/rights_agent - schema spec links point to by-layer/L1/security * docs: address review on trust docs consistency - name verify_brand_claim(s) as the only signed response payloads - give the pinned webhook key adcp_use and key_ops - one URL per agent role; scope the Brand Agent resolution step - fix leftover glossary, brand-agent checklist, and schema example * docs: keep the pin example to schema-declared key fields --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * docs(media-buy): backport opportunity usage advisory to 3.2 (#7912) * Version Packages (#7888) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * fix(release): backport conformance corrections for 3.2.3 (#7941) * fix(release): backport conformance corrections for 3.2.3 * fix(training-agent): backport scoped guaranteed task completion * fix(compliance): backport validate_input capability gates * fix(compliance): backport evaluator feature membership * Version Packages (#7975) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * fix(signing): backport A2A required_for resolution security errata to 3.2.x (#7981) * fix(signing): backport A2A required_for resolution security errata to 3.2.x Backport of #7945 (GHSA-2pm6-6mc8-8xcm, #7820) to 3.2.x: required_for / supported_for / warn_for match the operation resolved from the request, so they apply over A2A, with fail-closed resolution and 33 tiered conformance vectors. Excludes the 3.3-only request_signing.operation_sources marker. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * test(signing): tag the pre-check ordering vector as contradiction-resolution Rule 4 (resolution before signature-header checks) is a core clause, so its only vector (negative/018) belongs in the MUST tier. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com> * chore(release): restore unpublished 3.2.3 for security errata (#7980) * Version Packages (#7994) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * test(release): expect the registered 3.2.3 hosted target --------- Co-authored-by: aao-release-bot[bot] <280565558+aao-release-bot[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* docs(release): backport the 3.2.1 docs snapshot and GA default to 3.2.x (#7868) * chore: snapshot docs for v3.2.1 (#7842) * chore: snapshot docs for v3.2.1 * test: derive docs version selectors from docs.json after the 3.2.1 snapshot The v3.2.1 docs snapshot makes 3.2 the default and retires the 3.2-rc and 3.2-beta selectors, breaking tests pinned to the pre-GA navigation. - audio-radio-formats: check the radio guide in every 3.2 navigation in docs.json instead of requiring a 3.2-beta entry. - docs-indexer: resolve the default and newest 3.2 selectors at run time; pin the default to docs.json's default stable snapshot; keep the 3.1/3.0/2.5 no-leak assertions; accept either 3.2 format registry guide. - addie/schema-tools: build the selector matrix from DOCS_SCHEMA_RELEASES and DEFAULT_SCHEMA_VERSION; map pinned 3.2 prerelease $schema URLs to the live channel or, after GA, the stable 3.2 snapshot. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: aao-release-bot[bot] <280565558+aao-release-bot[bot]@users.noreply.github.com> Co-authored-by: Brian O'Kelley <bokelley@scope3.com> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit 30ec290) * docs: align the GA banner with the 3.2 message (#7843) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit fe3bf93) * test(docs): treat the stable branch as its own docs surface in CI On the stable maintenance branch (or a PR into it), comparing navigation against the branch's own pre-change tip rejects every navigation change, including the GA flip that makes it the stable surface. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: aao-release-bot[bot] <280565558+aao-release-bot[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * chore(release): register 3.2.x and carry post-tag GA hygiene onto 3.2.x (#7860) * chore(ci): add 3.2.x maintenance line to release and CI workflows Register the 3.2.x branch (created from the v3.2.1 Version Packages merge c32bd78) with Release (push trigger, dispatch recovery case, and the storyboard verification gates), the release-state and changesets fences, Build Check, Changeset Check, CodeQL, Dependency Review, apps/web check, and training-agent storyboards. Add forward-merge-3.2.yml, a 3.2.x copy of forward-merge-3.1.yml, and cover it in the release-workflow immutability test. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * revert(release): restore the full storyboard gate in verify-release (#7840) Reverts the temporary 3.2.1 GA reuse of the CI storyboard verification (#7836) now that v3.2.1 is published. The proper replacement is tracked in Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit a2f12a4) * chore(ci): leave training-agent-storyboards.yml out of the 3.2.x registration training-agent-storyboards.yml is a protocol-scoped path (#7510), so changing it requires a changeset. A CI branch-filter change should not carry a release changeset, and policy forbids an empty one to satisfy CI. Register 3.2.x there in a follow-up that already carries a real 3.2.x patch changeset. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * test: stop assuming the 3.2 line has no stable release (#7839) The 3.2.1 GA Version Packages cut makes two tests fail: - mcp-schema-projection hardcoded surface_version '3.2.0'. Derive the expected active surface from package.json: x.y.0 while the line is in prerelease, the released package version once it is stable (3.2.1, since 3.2.0 is withdrawn). - hosted-compliance-version used the real 3.2 line as its RC-only fixture. Move the #7356 guard to an isolated fixture tree with an RC-only 3.3 line, and assert the RC resolves so the throw is not vacuous. Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit 3dee3a4) * chore: snapshot docs for v3.2.1 (#7842) * chore: snapshot docs for v3.2.1 * test: derive docs version selectors from docs.json after the 3.2.1 snapshot The v3.2.1 docs snapshot makes 3.2 the default and retires the 3.2-rc and 3.2-beta selectors, breaking tests pinned to the pre-GA navigation. - audio-radio-formats: check the radio guide in every 3.2 navigation in docs.json instead of requiring a 3.2-beta entry. - docs-indexer: resolve the default and newest 3.2 selectors at run time; pin the default to docs.json's default stable snapshot; keep the 3.1/3.0/2.5 no-leak assertions; accept either 3.2 format registry guide. - addie/schema-tools: build the selector matrix from DOCS_SCHEMA_RELEASES and DEFAULT_SCHEMA_VERSION; map pinned 3.2 prerelease $schema URLs to the live channel or, after GA, the stable 3.2 snapshot. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: aao-release-bot[bot] <280565558+aao-release-bot[bot]@users.noreply.github.com> Co-authored-by: Brian O'Kelley <bokelley@scope3.com> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit 30ec290) * docs: align the GA banner with the 3.2 message (#7843) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit fe3bf93) * fix(compliance): track active SDK publication tags * test(docs): allow exact 3.2 release branch bootstrap * test(docs): pin GA branch bootstrap commit for shallow CI * ci(release): gate 3.2 storyboards before maintenance merges --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: aao-release-bot[bot] <280565558+aao-release-bot[bot]@users.noreply.github.com> * docs(accounts): clarify account references before provisioning (#7871) (#7884) * docs(accounts): clarify account references before provisioning Spells out what the error table and cache_scope contract already required. A buyer-declared natural key resolves only after provisioning. An unresolved account that the seller doesn't lazily provision returns ACCOUNT_NOT_FOUND even where account is optional. Buyers omit unprovisioned keys and send brand. Account errors are not seller-health signals. An echoed account_id is a seller handle. ACCOUNT_NOT_FOUND recovery is now consistent. * docs(signals): note unresolved account behavior on get_signals --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * docs: fix contradictions between trust docs and the spec (#7881) (#7890) * docs: fix contradictions between trust docs and the spec - verification overview: anchor on the agent URL, not response signing - relationship_trust values and house_domain instead of parent_house - direct, delegated, and ad_network all pair with delegation_type - missing authorized_operators listing means reject or manual review - agents[] examples instead of deprecated brand_agent/rights_agent - schema spec links point to by-layer/L1/security * docs: address review on trust docs consistency - name verify_brand_claim(s) as the only signed response payloads - give the pinned webhook key adcp_use and key_ops - one URL per agent role; scope the Brand Agent resolution step - fix leftover glossary, brand-agent checklist, and schema example * docs: keep the pin example to schema-declared key fields --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * docs(media-buy): backport opportunity usage advisory to 3.2 (#7912) * Version Packages (#7888) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * fix(release): backport conformance corrections for 3.2.3 (#7941) * fix(release): backport conformance corrections for 3.2.3 * fix(training-agent): backport scoped guaranteed task completion * fix(compliance): backport validate_input capability gates * fix(compliance): backport evaluator feature membership * Version Packages (#7975) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * fix(signing): backport A2A required_for resolution security errata to 3.2.x (#7981) * fix(signing): backport A2A required_for resolution security errata to 3.2.x Backport of #7945 (GHSA-2pm6-6mc8-8xcm, #7820) to 3.2.x: required_for / supported_for / warn_for match the operation resolved from the request, so they apply over A2A, with fail-closed resolution and 33 tiered conformance vectors. Excludes the 3.3-only request_signing.operation_sources marker. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * test(signing): tag the pre-check ordering vector as contradiction-resolution Rule 4 (resolution before signature-header checks) is a core clause, so its only vector (negative/018) belongs in the MUST tier. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com> * chore(release): restore unpublished 3.2.3 for security errata (#7980) * Version Packages (#7994) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(docs): sync 3.2.3 maintenance snapshot navigation (#8000) * fix(release): backport reporting and conformance fixes for 3.2.4 (#8139) * fix(release): backport reporting and conformance fixes for 3.2.4 * test(ledger): backport synchronized recovery fixtures * docs(release): finalize the 3.2.4 maintenance narrative * Version Packages * test(release): pin the 3.2.4 hosted compliance bundle and align the 026 vector note Load the explicitly pinned 3.2.4 bundle with the hosted SDK alongside the other 3.2 pins, so the new alias target is exercised end to end. The non-ASCII host vector's comment now records that the correction shipped in 3.2.4 and is carried on 3.3. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * fix(release): verify artifact links through file descriptors --------- Co-authored-by: aao-release-bot[bot] <280565558+aao-release-bot[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Current RC5-train status (2026-09-23)
Ready for review at exact head
642a2edbc2948ce3a7dfefe6efdefecf66a7aa87, merged withmainat0f451209315986084385ee48932ab441853bba43. Squash auto-merge is armed but remains gated by exact-head CI and non-author human maintainer approval. Local release validation passed 149/149 publication/fence tests, 9/9 compliance-version tests, promotion/immutability, and the broader suite passed 666 files / 11,018 tests with 31 skips. All review threads are resolved/outdated. This paragraph supersedes older Draft/readiness/authorization status below; historical incident evidence remains for audit context.Routine Deploy exposed committed rc.3 artifacts before their tag/GitHub Release, and stale Changesets runs force-updated the release branch. This change restricts routine uploads to mutable
latest, binds immutable publication to current maintainer approval and exact commit provenance, and contains stale generated-branch updates using verified Draft/HOLD state and exact leases.Draft only; auto-merge off. Human maintainer approval remains required. #7510 is the hard predecessor of #7507 and #7509. Neither may land first: legacy bulk deployment would publish their historical artifacts without separate authority. After this fence lands, successors must rebase onto the actual landed fence and repeat exact CI, independent audit and human review. #7507 additionally requires confirmed deployment of human-reviewed/landed #7506. Synthetic composition does not release these holds.
#7502, the separate immutability-guard workstream, was last recorded as quarantined Draft/auto-off at
97057931798034e9ed57a6f4160b7d01f635a5acon recorded base 36a. Its exact Secretariat bot approval is not human authority. Do not assume its guard is landed or authorized: current-main refresh, exact CI/audit, native human gate and human review remain required. #7503 owns its release-content/documentation corrections; neither workstream's production changes are absorbed here.Behavior:
latest; unscoped live bulk publication fails. Regression fixtures include historical rc.0–rc.3 JSONL and 3.1.22/3.1.23 artifacts and prove routine Deploy cannot backfill them.queue: maxwith cancellation disabled; obsolete runs and stranded committed releases stop explicitly with an eligible recovery route. GitHub's queue is bounded, not guaranteed delivery.R2 publication is progressive and atomic per object only. A request already in flight can finish after main advances; subsequent writes stop. There is no whole-bundle transaction across main, GitHub and R2. Partial attempts require inventory and separately authorized recovery.
Exact candidate (pure rebase onto #7533):
cdcc8f996e8acd2417d5f7a547711cd21929289b22047cc647fdcb23aebb6582476af8f1fe341e542d4e6213ac3bbe8decebe4f1062b84cb4144c0aff7890344fd472dbadc12f8dc43f5f571b0d35774/2da35544ffb7257861324786a33cae9db0457bac.git diff --binary --full-index BASE...HEAD: 153,720 bytes, SHA-2568dbd5f38d01cedb350fafa2f17756557d1dc5ec22e2f4455c107726e0c98e4ad. Ordinary diff withcore.abbrev=10: 152,820 bytes, SHA-25680044fabc06b08c7da1986223746f477c437ecba04424d30d03ba9c2f191d4fa.disttree16839080cf3ce1c9f1e140080e14988f56eacddfis unchanged: all 94,064 blobs, including all 2,097 original rc.3 path/mode/blob records. No dist or .context paths in the diff. No dependency, lock, version, release-content or protocol-surface changes; package.json only registers the release tests. No changeset is required for this operational scope.Local validation on this exact head used Docker
node:24-bookworm-slim, Node 24.21.0, and dependency content matching the lockfile (SDK 14.0.0-rc.35):bash scripts/with-timeout.sh 900 npm run test:release-workflow: 149/149 ordering/fence tests, 9/9 published-compliance tests, promotion and release/forward-merge immutability passed (98.898s).csrf-middleware.test.ts,mcp-route-authorization.test.ts,mcp-principal-authorization.test.ts: 3 files /83 tests, all passed. The third is adjacent regression coverage; fix(auth): allow trailing slashes on MCP CSRF exemptions #7533 itself changes the first two test files and the middleware implementation.queue: maxand cancellation false. Combined Actionlint/inline ShellCheck has four unchanged baseline findings (SC2011, SC2086, SC2129, SC2155), exit 1; candidate and f789 output are byte-identical. Syntax validation was also run separately from embedded ShellCheck. No workflow edits occurred during qualification.jq; installing jq1.6 and rerunning the unchanged candidate passed. IPv6 loopback was enabled only inside the test-container network namespace during canonical tests, before server tests, and an explicit::1bind passed. No test expectations were changed.bash scripts/with-timeout.sh 3600 npm testcompleted with exit 0 in 1,749.268s (29m 9.268s),ADCP_TIMEOUT_SCALEunset. Canonical suites passed; root units 1,063/1,063 across 71 files; server units 9,476 passed, 31 skipped across 617 files (server duration 1,005.66s); OpenAPI and both final typechecks passed. This is exact 22047 evidence, not inherited from f789.Fresh-context independent read-only reviewer
/root/release_cdcc_reviewfound no blockers on exact head/tree22047/2d4e. It independently verified all nine equal commits, zero overlap, complete dist preservation, CSRF integration and release safeguards. Separate evidence audit found no count or head mismatch. This is AI review, not required human approval. The existing CodeQL mock comment-store thread is resolved/outdated; its exclusive temporary write and atomic rename remain unchanged. Fresh exact-head GitHub CodeQL remains required.Authorized leased push completed on2026-09-15; post-push checkpoint 2026-09-15T04:25:17.138953+00:00 confirms exact head22047, maincdcc, Draft=true and auto-merge=null. Expected-old-head lease was the complete
f7890344fd472dbadc12f8dc43f5f571b0d35774onrefs/heads/conductor/fix-release-publication-gate. The unchanged version/scope/docs pre-push hook ran in Docker; only the playbook-documented advisory local storyboard replay was skipped withADCP_SKIP_STORYBOARD_MATRIX=1. Fresh exact22047cc647fdcb23aebb6582476af8f1fe341e54CI is terminal green at 2026-09-15T04:47:21Z: 56 successful rollup contexts (55 CheckRuns + IPR), 1 expected Draft Ladon skip, 0 pending/failed/cancelled checks. All 13 Actions runs completed on attempt 1 (12 success, 1 Draft skip). Build, migration smoke, and the authoritative storyboard run passed; storyboards finished all 22 jobs successfully. Exact-head CodeQL reports no new alerts in changed code and zero annotations. No new inline findings appeared; the previous mock-store thread remains resolved/outdated. Historical f789 check results below do not qualify this head.Native requests to @bmilekic and @EmmaLouise2018 were renewed at 2026-09-15T04:48:55Z, after terminal exact-head CI and an independent terminal audit. New native timeline events 31147555089 and 31147555118 are verified. Both are current non-author human admins; their requests remain pending and neither has approved this head. Pending requests were removed/re-added; no review history was dismissed. Keep Draft/auto-merge off. User authorization covers this PR's leased rebase publication, evidence and CI monitoring only. No merge, readiness change, Release/Deploy/Recover dispatch or rerun, software-release/tag, recovery, R2/CDN or held-peer mutation is authorized. #7404 remains open; no affected public-card result is claimed.
Local records:
.context/release-7510-cdcc-evidence/(preservation hashes, range-diff, per-command logs/results, full-run record, baseline lint comparison and independent review). Conductor workspace · session.Historical base2da/headf789 qualification and incident/recovery handoff (not current-head evidence)
The records below are retained from the previous qualification. Their “current” timestamps/heads, composition tests, writer reconciliation and object inventories refer to that historical window. They do not establish the new head's CI, current external bytes, deployment, human authority, or any recovery authorization.
Exact historical candidate:
2da35544ffb7257861324786a33cae9db0457bacf7890344fd472dbadc12f8dc43f5f571b0d357749f0fce37063bccdc21e9d3b20ab8f5b328611b1egit diff --binary --full-index BASE...HEAD: 153,720 bytes, SHA-2568dbd5f38d01cedb350fafa2f17756557d1dc5ec22e2f4455c107726e0c98e4ad.git -c core.abbrev=10 diff --binary BASE...HEAD: 152,820 bytes, SHA-25680044fabc06b08c7da1986223746f477c437ecba04424d30d03ba9c2f191d4fa.32496b54on base336: all nine range-diff entries equal, all 15 resulting changed blobs identical, and the canonical patch unchanged. The 19 paths added by fix(addie): finish agent registration with secure credential entry #7529 on current main have zero overlap. The narrow CodeQL fixture correction—initialized comment store, direct read, exclusive temporary write and atomic rename—is preserved exactly.disttree remains16839080cf3ce1c9f1e140080e14988f56eacddf; all 2,097 original rc.3 path/mode/blob records are identical to 71f. No release content, migration, dependency, lockfile or package-version changes; package metadata changes only test registration. Diff: 15 files, +3,238/-122.Current-base local evidence (exact base2da/headf789; prior-base results remain historical):
unexpected key "queue" for "concurrency" sectionexception; a parsed-YAML contract requires exactlyqueue: max/cancel-in-progress: false. Official GitHub documentation documents the 100-pending limit and incompatible cancellation setting. No blanket parser suppression is used; unchanged base inline ShellCheck findings are separate.f7890344for Draft lease-push only, with no blockers, issues or nits. It verified all nine range entries, 15 blobs, unchanged patch/dist/rc.3 inventory, security semantics, current-base tests and exact held-peer composition. Report:.context/release-ordering/independent-review-current-2da.md; review session. All previous evidence is retained.Held #7509 composition with unchanged
3b6fd2d124c691370d97b8e57d0fa23bc0a2563fproduces tree3e75f741bcef6f5ddfb7ec55636dab443198506con current base2da. The sole conflict ispackage.json; resolution retains ordering/fence/CDN/Worker registration exactly once. All 2,411 materialized files match the tree; the full index contains 99,716 entries. The actual combined release command passed 149 ordering/fence + 53 JSONL/Worker + 9 compliance tests, promotion/immutability and registration 1/1, with zero failures or skips. No synthetic commit is pushed. #7509 remains held until #7510 actually lands and it requalifies; prior-base compositions are historical.Fresh exact
f7890344CI is terminal green: 56 successful rollup contexts (55 check runs plus IPR status), one expected Draft Ladon skip, and zero pending/failed/cancelled contexts. All 13 Actions runs finished on attempt 1: 12 success and Ladon skipped. Build 34908986750, migrations 34908986751, and storyboards 34908986708 passed; the authoritative storyboard run completed all 22 jobs successfully. Live CodeQL check 104193618061 passed on this exact head, reporting no new alerts and zero annotations. The terminal owner snapshot at 23:51:48 UTC reconfirmed main2da/headf789, Draft/auto-off and zero active/queued Release/Deploy/Recover or schema-bundle writers. Prior32496b54results remain evidence on base336 only.The supplemental full
npm testcompleted with exit 0: canonical suites passed, root unit tests passed 1,063/1,063 across 71 files, server unit tests passed 9,464 with 31 skips across 617 files, and both final typechecks passed. This is current exact-head local evidence, recorded incurrent-2da-root.log; it does not establish any production deployment or affected-agent outcome.The branch update succeeded using an explicit expected-head lease against
32496b54e8fcdef46a12b077a9426eb7193ac522, a fresh current-main check, and zero active or queued Release/Deploy/Recover and schema-bundle writers. The immediate pre-push checkpoint passed at 23:27:45 UTC and the post-push checkpoint passed at 23:27:58; main/head and Draft/auto-off were exact. Version/scope/docs pre-push hooks remain enabled. The playbook-documentedADCP_SKIP_STORYBOARD_MATRIX=1skips only the advisory local storyboard replay for this Draft push; no full local matrix pass is claimed. The authoritative GitHub storyboard run subsequently passed all 22 jobs. The supplemental full-root canonical run was non-terminal before push and subsequently completed successfully, as recorded above. No dependency, version floor, source, release artifact or workflow behavior changed in the rebase.Current incident and recovery handoff—no live recovery authorized:
34903186410completed at 22:16:42 UTC after its release job was skipped for an app-only push. Deploy34903894825completed at 22:45:43; its old bulk R2 step ran 22:39:17–22:45:39, with 89 AWS commands. This is scope evidence only, not a fresh object inventory. The earlier 20:42 byte audit below is historical and was not repeated. Version Packages (rc) #7508 remains exact15fcf330dgenerated from336; this app-only advance does not establish rc.4 bundle-content drift. Current writer state must be rechecked before any later action.34885829473on336 completed at 20:36:10 UTC. Its only relevant mutation was the old unleased force-pushffa19d518→15fcf330d9950f6c12f0903b0a3fef30fb03ab8fat 20:36:05. #7508 remains Draft/auto-off with no reviews at the final snapshot: candidate rc.4, sole parent 336, tree8db92ddd365ad461d323d09dc37423f22dd2847a, one commit / 2,113 files / +2,776,220/-6. Signing/tag/GitHub Release/R2/CDN steps were skipped. All 94 release authority/asset records were unchanged. No active Release/Deploy remained at reconciliation; recheck before any later operation. Preserve Version Packages (rc) #7508 HOLD; this work does not mutate it.34887471948completed bulk R2 publication 19:48:37–19:53:18. Its 89 AWS commands cover 80 destinations, including versioned roots. Quiet logs establish scope, not every changed object. New fences do not retroactively control old-code runs.34844149713, initially cancelled, later completed external attempt 4 triggered bybokelley: GitHub Release 388609904 was public at 18:11:49, assets uploaded through 18:11:58, followed by legacy bulk R2. Tagv3.2.0-rc.3targets original 71f; all four downloaded assets match committed bytes. This session performed none of those operations. Do not recreate or retag the existing release.compliance/3.2.0-rc.3/test-vectors/reporting-reconciliation/rows.jsonl. The earlier temporary-reader attempt failed locally and is retained separately; only the completed corrected report establishes equality. This observation window is not an atomic snapshot or repair authorization. Evidence:legacy-final-rc3-r2-audit.json.legacy-rc4-routing-audit.jsonand public curl responses.--versionalone is not a one-key allowlist. Any other missing object or ambiguous read stops for a separate plan; never replay historical workflows.Current exact-head independent review and fresh CI/CodeQL are clean. Independent post-push audit at 23:52:45 UTC reconfirmed exact head/base/main, all terminal CI/CodeQL and full local pipeline results, both pinned diff identities, Draft/auto-off and zero active/queued writers. Under the user’s earlier rebase/qualification authorization, native requests to @bmilekic and @EmmaLouise2018 were renewed at 2026-09-14T23:53:44Z, after green CI and the independent audit. Pending requests were removed/re-added and fresh native timeline events verified; no review history was dismissed. Both are current human admins. Their requests remain pending; neither has approved. Keep Draft/auto-off. No readiness or merge claim is made without exact-head, non-author human maintainer approval. #7510 remains the hard predecessor of #7507/#7509, and #7507 additionally requires human-reviewed #7506 landing and web/worker deployment. #7404 remains open; no live affected-card verification or closure is claimed. No #7506/#7507/#7508/#7509 state, merge, deploy, recovery/publication, tag/release, workflow rerun/cancel, R2/CDN or branch-rule mutation is performed by this task.