Skip to content

chore(ci): add 3.2.x maintenance line to release and CI workflows - #7859

Merged
bokelley merged 3 commits into
mainfrom
chore/add-3-2-x-release-line
Oct 1, 2026
Merged

bokelley merged 3 commits into
mainfrom
chore/add-3-2-x-release-line

Conversation

@bokelley

@bokelley bokelley commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Summary

This PR follows .agents/shortcuts/cut-minor-ga.md Phase 10, step 25. It registers the new 3.2.x maintenance line on main.

The branch 3.2.x already exists. It was created at c32bd78c5389753e3b8f3ffd8a1c04b777854d83, the v3.2.1 Version Packages merge (#7712). Patches on it continue as 3.2.2, 3.2.3, and so on.

Changes, adding 3.2.x to each branch list named in the runbook:

  • release.yml:
    • the push trigger
    • the workflow_dispatch recovery case (main|3.2.x|3.1.x|3.0.x)
    • both storyboard verification gates, so 3.2.x gets the same current and 3.0-compat storyboard coverage as 3.1.x
  • scripts/check-release-state.cjs and scripts/fence-changesets.cjs: the supported-branch lists
  • build-check, changeset-check, codeql, dependency-review, apps-web-check: the push and PR branch filters
  • Not included: training-agent-storyboards.yml. That path is protocol-scoped (fix(release): fence publication and recover superseded releases #7510), so changing it requires a changeset. A CI branch filter should not carry a release changeset, and the playbook forbids an empty one. Follow-up: add 3.2.x to it in the first 3.2.x backport that already carries a real patch changeset. The obvious candidate is the docs(adagents): define authorized_agents[].url as the full agent endpoint #7827 adagents clarification. Until then, release.yml still runs both storyboard gates on 3.2.x pushes.
  • New forward-merge-3.2.yml: a straight 3.1.x → 3.2.x substitution of forward-merge-3.1.yml. It uses the same App token, the same one-way 3.2.x → main direction, and the same metadata-only auto-resolution. Its PR head is forward-merge/3.2.x.
  • tests/release-workflow-immutability.test.cjs: covers forward-merge-3.2.yml and the new dispatch case

The matching 3.2.x PR

GitHub runs push and pull_request workflows from the copy on the target branch. A change on main alone therefore does not make pushes to 3.2.x run Release or forward-merge. The companion PR #7860 carries the identical diff. It also cherry-picks the post-tag GA hygiene onto 3.2.x: #7840, #7839, the v3.2.1 docs snapshot #7842, and #7843.

#7860 is the more urgent of the two. Cutting 3.2.x switched on tests/docs-nav-validation.test.cjs's comparison against origin/3.2.x, which still defaults its docs to 3.1. As a result, Canonical tests (2/4) now fails on every main PR, this one included, until #7860 lands.

Branch protection

No branch protection or ruleset covers 3.1.x today. The main and IPR signatures rulesets target ~DEFAULT_BRANCH only, and 3.1.x reports protected: false. Nothing was mirrored to 3.2.x. If the maintainer wants protection on maintenance lines, that is a separate admin decision.

Open decision (maintainer)

  • How long 3.1.x stays a security and critical-fix line. The runbook and playbook leave this window to the maintainer.

  • How fixes flow between 3.1.x, 3.2.x, and main. Forward merges today are 3.1.x → main and (with this PR) 3.2.x → main. Nothing moves a 3.1.x fix into 3.2.x. Options:

    • (a) Cherry-pick every fix to each affected line from its main merge. This is the current convention.
    • (b) Retarget forward-merge-3.1.yml to 3.1.x → 3.2.x, chaining into 3.2.x → main.

    Until that is decided, this PR leaves forward-merge-3.1.yml unchanged.

Test plan

  • npm run test:release-workflow passes on this branch and on the 3.2.x companion branch.
  • Every workflow YAML parses.
  • CI green

🤖 Generated with Claude Code

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>
…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>

@aao-secretariat aao-secretariat Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ladon verdict: Escalate to human review

Escalate — gated paths touched without required approval.

This PR mechanically registers the 3.2.x maintenance line across 11 CI/release files, including modifications to workflow files under .github/workflows/** and a new forward-merge-3.2.yml. The reviewer found no Critical/High/Medium findings — the diff is clean and well-covered by the immutability test.

However, gated_paths: true (multiple .github/workflows/** files modified) and review_decision: REVIEW_REQUIRED (not APPROVED). Per decision rule row 2, this is a hard, non-overridable approval gate that can only be satisfied by a real human/CODEOWNERS approval. The outcome must be escalate.

Escalation reasons

  • .github/workflows/** is a gated path (modified: apps-web-check.yml, build-check.yml, changeset-check.yml, codeql.yml, dependency-review.yml, release.yml, training-agent-storyboards.yml; added: forward-merge-3.2.yml) and review_decision is REVIEW_REQUIRED. Human/CODEOWNERS approval is required before merge.

No blocking code findings; the gate lifts once a reviewer approves.

Why human review

  • Gated path .github/workflows/** modified/added across 8 workflow files (including new forward-merge-3.2.yml) while 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/apps-web-check.yml (modified) matches .github/workflows/**; .github/workflows/build-check.yml (modified) matches .github/workflows/**; .github/workflows/changeset-check.yml (modified) matches .github/workflows/**; .github/workflows/codeql.yml (modified) matches .github/workflows/**; .github/workflows/dependency-review.yml (modified) matches .github/workflows/**; .github/workflows/forward-merge-3.2.yml (added) matches .github/workflows/**; .github/workflows/release.yml (modified) matches .github/workflows/**; .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.

@aao-secretariat aao-secretariat Bot added the ladon/needs-human-review Ladon has escalated this PR for human review. label Oct 1, 2026
@bokelley
bokelley merged commit f0ce377 into main Oct 1, 2026
30 checks passed
@bokelley
bokelley deleted the chore/add-3-2-x-release-line branch October 1, 2026 18:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ladon/needs-human-review Ladon has escalated this PR for human review.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant