Repository navigation
chore(release): forward-merge 3.2.x branch registration - #7872
Conversation
….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>
….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>
67a78b3 to
f4620e3
Compare
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — gated path requires human/CODEOWNERS approval.
This PR modifies .github/workflows/training-agent-storyboards.yml, which matches the hard approval gate glob .github/workflows/** (gated_paths: true). The current review_decision is REVIEW_REQUIRED, not APPROVED, so the gate is not satisfied and auto-approval is barred (decision table row 2).
The change itself is clean: the reviewer found no blocking or Medium findings. It adds the 3.2.x maintenance line branch registration with a tightly-scoped, fail-closed changeset exemption (full-file replaceAll-equality guard, short-circuited status check), supporting tests, and a stable-docs-ref fix for maintenance branches — all correct and well-tested. Once a human/CODEOWNERS approval lands (review_decision: APPROVED), this would fall through to an approve.
Escalation reasons
.github/workflows/training-agent-storyboards.ymlis under a hard approval gate (.github/workflows/**);review_decisionisREVIEW_REQUIRED. Human/CODEOWNERS review required before merge.
Why human review
- .github/workflows/training-agent-storyboards.yml is under a hard approval gate (.github/workflows/**) and review_decision is REVIEW_REQUIRED — human/CODEOWNERS approval required before merge.
- This PR touches a path under a hard, non-overridable approval gate (.github/workflows/training-agent-storyboards.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.
f4620e3 to
67a78b3
Compare
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — hard approval gate on .github/workflows/** not yet satisfied.
This PR modifies .github/workflows/training-agent-storyboards.yml, which matches a gated path (gated_paths: true). The current review_decision is REVIEW_REQUIRED, not APPROVED, so per decision-table row 2 the outcome must be escalate. The diff itself is clean — the reviewer found no Critical/High/Medium findings (clean forward-merge of 3.2.x branch registration; the changeset-scope exemption is tightly keyed and fails closed; tests cover the relevant cases) — but a clean diff cannot lift a hard, non-overridable gate. Human/CODEOWNERS approval is required before merge.
Escalation reasons
.github/workflows/training-agent-storyboards.yml(modified) is under a hard approval gate (.github/workflows/**) andreview_decisionisREVIEW_REQUIRED, notAPPROVED— human/CODEOWNERS review required before merge.
The gate lifts the moment a human/CODEOWNERS approval is recorded; at that point the clean diff falls through to approve.
Why human review
- .github/workflows/training-agent-storyboards.yml (modified) matches the hard approval gate
.github/workflows/**and review_decision is REVIEW_REQUIRED, not APPROVED — human/CODEOWNERS approval required before merge. - This PR touches a path under a hard, non-overridable approval gate (.github/workflows/training-agent-storyboards.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.
Summary
Forward-merge
3.2.xafter #7860 intomain. The resulting tree change is limited to the storyboard workflow's3.2.xPR/push registration, its exact branch-registration changeset exemption and tests, and the stable docs navigation branch reference.The first automatic forward-merge run encountered a
release.ymlcontent conflict against an oldermaintip. PR #7859 landed that workflow change onmainduring the run. Replaying the merge on the currentmaintip resolved cleanly, with norelease.ymltree change. A later automatic run generated the same tree and force-updated this PR branch to its merge commit. The reviewer workflow rejected the bot-initiated event, so the identical manually validated merge commit was restored under the maintainer identity for a normal review run.Validation
npm run test:docs-nav— 49 passednode --test tests/changeset-protocol-scope.test.cjs— passedThe PR's GitHub checks are the merge gate.