docs(release): cut/promote/rollback runbook (#498)#558
Conversation
Operational runbook for the per-agent channel-tag model: how to cut an immutable vX.Y.Z, promote (move stable forward), and roll back (move stable back to the prior release) in < 5 min with no per-caller edits. Captures the gating (promotion is human-driven), the cut-release.sh channel-only-move gap (use git tag -f directly for an already-cut release), verification via the caller's @refs/tags/<agent>/stable resolution line, and rollout gotchas learned in the #495 fleet rollout. Cross-linked from versioning.md. Validated live this cycle: pr-review v1.5.3 and dev-lead v1.2.0 cut+promoted, each verified by a caller run resolving the channel tag. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Warning Review limit reached
More reviews will be available in 40 minutes and 20 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThis PR adds a comprehensive release runbook for agent versioning, documenting the per-agent channel-tag release model with immutable version tags and mutable stable channel tags. The new runbook covers cutting releases, promoting stable, rolling back, and verifying resolution, with operational gotchas and gating rules. Related versioning docs are updated to link to the new runbook. ChangesAgent Release Runbook
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~5 minutes Possibly related issues
Possibly related PRs
Suggested labels
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Code Review
This pull request introduces a comprehensive release runbook (runbook.md) detailing the operational procedures for cutting, promoting, and rolling back releases using the per-agent channel-tag release model, and updates versioning.md to reference this new document. The review feedback provides valuable improvements to the runbook, including refining the git tag listing command to filter out mutable channel tags during rollback, correcting the grep pattern for verifying workflow runs to ensure it matches the pr-review agent's workflow name, and improving readability/formatting in the "Gotchas" section.
Dev-Lead — review-changes (applied)Changes committed and pushed. |
There was a problem hiding this comment.
Pull request overview
Adds an operational release runbook for the per-agent channel-tag model and links it from the existing versioning documentation, so operators have a single, cross-referenced procedure for cut/promote/rollback/verify.
Changes:
- Add
docs/release/runbook.mddocumenting cut, promote, rollback, verification, and rollout “gotchas” forpr-reviewanddev-lead. - Update
docs/release/versioning.mdto link to the new runbook.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
| docs/release/versioning.md | Adds a cross-link to the new promote/rollback runbook. |
| docs/release/runbook.md | Introduces the operational runbook for cutting releases and moving per-agent channel tags. |
Dev-Lead — review-changes (applied)Changes committed and pushed. |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/release/runbook.md`:
- Around line 78-79: Update the wording in the runbook sentence that currently
says "re-creates the immutable tag first" to accurately say that `cut-release.sh
--channel` "creates the immutable tag" (not "re-creates") and clarify that it
will error if the `vX.Y.Z` tag already exists because immutable tags are never
overwritten; ensure the sentence references the `cut-release.sh --channel`
behavior and the `vX.Y.Z` tag existence check so it no longer implies modifying
an existing tag.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: cbcee46a-6368-44bd-8eb2-442b92ebf28d
📒 Files selected for processing (2)
docs/release/runbook.mddocs/release/versioning.md
|
@coderabbitai resolve |
Dev-Lead — waiting on PR blockers (intent: review-changes)PR: #558 |
|
Note @don-petry I reviewed this PR and no code changes were needed, but it still has blocking checks or reviews (failing or cancelled checks, or changes-requested reviews), so I cannot mark it done yet. I'll re-check automatically. |
✅ Action performedComments resolved and changes approved. |
Dev-Lead — review-changes (applied)Changes committed and pushed. |
|
Dev-Lead — review-changes (no-changes)No changes were needed for this PR. |
donpetry-bot
left a comment
There was a problem hiding this comment.
Automated review — APPROVED ✓
Risk: LOW
Reviewed commit: fa480225b34cdfb3c48e113ce09f1a4d4a11dca6
Review mode: triage-approved (single reviewer)
Summary
Docs-only PR: adds docs/release/runbook.md (new, 172 lines) covering cut / promote / rollback / verify procedures for the per-agent channel-tag release model, plus a 3-line cross-link update in docs/release/versioning.md. No code, scripts, workflows, or config touched.
Linked issue analysis
Closes #498 (the runbook deliverable for the per-agent release model). The runbook covers all the body's stated scope — roles & gating (promotion human-driven, restricted by release-channel-tags ruleset), cut-release.sh usage and the immutable-tag refusal, the channel-only-move gap workaround via direct git tag -f, < 5-minute rollback, caller verification via the reusable-resolution log line, and the gotchas (stale-channel regression, CodeQL synchronize trick, SHA-pin exception). PR body documents that the cut → promote → verify path was exercised live this cycle against pr-review/v1.5.3 and dev-lead/v1.2.0.
Findings
No blocking issues. Internal cross-links in runbook.md (versioning.md, AGENTS.md, initiatives/agentic-release-strategy.md) point to real paths; the back-link from versioning.md correctly replaces the issue-tracker stub. Prior CodeRabbit review comments were addressed (CHANGES_REQUESTED dismissed, final review approved). Docs-only diff so no security, dependency, or runtime surface area.
CI status
All required checks green: Lint, ShellCheck, CodeQL (actions + python), Agent Security Scan, Secret scan (gitleaks), SonarCloud, unit-tests, Compile agentic workflows, AgentShield. Dependency-audit ecosystems correctly skipped (none applicable). review / review is queued for the new run but a prior review / review already completed SUCCESS.
Reviewed automatically by the PR-review agent (single-reviewer mode: opus 4.7). Reply if you need a human review.
donpetry-bot
left a comment
There was a problem hiding this comment.
Automated review — APPROVED ✓
Risk: LOW
Reviewed commit: fa480225b34cdfb3c48e113ce09f1a4d4a11dca6
Review mode: triage-approved (single reviewer)
Summary
Docs-only PR adding docs/release/runbook.md (172 lines) and updating a cross-link in docs/release/versioning.md (3-line edit). Closes #498. No code, scripts, workflows, or configuration touched. Triage assessment is confirmed: LOW risk.
Linked issue analysis
Issue #498 calls for the cut/promote/rollback runbook for the per-agent channel-tag release model. The new runbook covers each required area: roles & gating (who can move <agent>/stable), cut procedure (cut-release.sh ... --push), promote (new-release one-step path and the already-cut direct git tag -f path, with the known cut-release.sh channel-only-move gap clearly called out), rollback (single tag-move in reverse to the immutable vX.Y.Z target), verification (resolved @refs/tags/<agent>/stable (<sha>) line from a fresh caller run), and gotchas learned in the #495 rollout. PR body's claim that the cut→promote→verify path was exercised live this cycle (pr-review/v1.5.3 and dev-lead/v1.2.0) matches the documented validation section.
Findings
No blocking issues.
- Risk class: LOW — documentation only, no executable code, no workflow changes, no secrets/auth/migrations.
- Content accuracy: commands shown (
scripts/cut-release.sh,git tag -f ... && git push --force,gh run view ... | grep '@refs/tags/') are consistent with the cut-release script's existing behavior, and therelease-channel-tagsruleset + AGENTS.md "mutable-ref exception" references match the standards already in this repo. - Documented gap (
cut-release.shhas no--channel-onlymode for already-cut releases) is explicitly flagged rather than hidden — appropriate for a runbook. - Cross-link in
versioning.mdcorrectly redirects #498/#501/#505 references and now points at the new runbook. - Markdown formatting and structure are clean (headings, code fences, table).
CI status
All required checks green: Lint, ShellCheck, unit-tests, CodeQL (actions + python), SonarCloud, Secret scan (gitleaks), Agent Security Scan, Compile agentic workflows, AgentShield, CodeRabbit, prior PR-review-agent run. Dependency-audit ecosystem jobs and dependabot-automerge correctly skipped (no dependency or dependabot changes). reviewDecision is APPROVED.
Reviewed automatically by the PR-review agent (single-reviewer mode: opus 4.7). Reply if you need a human review.
* docs(release): add cut/promote/rollback runbook (#498) Operational runbook for the per-agent channel-tag model: how to cut an immutable vX.Y.Z, promote (move stable forward), and roll back (move stable back to the prior release) in < 5 min with no per-caller edits. Captures the gating (promotion is human-driven), the cut-release.sh channel-only-move gap (use git tag -f directly for an already-cut release), verification via the caller's @refs/tags/<agent>/stable resolution line, and rollout gotchas learned in the #495 fleet rollout. Cross-linked from versioning.md. Validated live this cycle: pr-review v1.5.3 and dev-lead v1.2.0 cut+promoted, each verified by a caller run resolving the channel tag. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] --------- Co-authored-by: donpetry-bot <{}+donpetry-bot@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
* docs(release): add cut/promote/rollback runbook (#498) Operational runbook for the per-agent channel-tag model: how to cut an immutable vX.Y.Z, promote (move stable forward), and roll back (move stable back to the prior release) in < 5 min with no per-caller edits. Captures the gating (promotion is human-driven), the cut-release.sh channel-only-move gap (use git tag -f directly for an already-cut release), verification via the caller's @refs/tags/<agent>/stable resolution line, and rollout gotchas learned in the #495 fleet rollout. Cross-linked from versioning.md. Validated live this cycle: pr-review v1.5.3 and dev-lead v1.2.0 cut+promoted, each verified by a caller run resolving the channel tag. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] --------- Co-authored-by: donpetry-bot <{}+donpetry-bot@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
* docs(release): add cut/promote/rollback runbook (#498) Operational runbook for the per-agent channel-tag model: how to cut an immutable vX.Y.Z, promote (move stable forward), and roll back (move stable back to the prior release) in < 5 min with no per-caller edits. Captures the gating (promotion is human-driven), the cut-release.sh channel-only-move gap (use git tag -f directly for an already-cut release), verification via the caller's @refs/tags/<agent>/stable resolution line, and rollout gotchas learned in the #495 fleet rollout. Cross-linked from versioning.md. Validated live this cycle: pr-review v1.5.3 and dev-lead v1.2.0 cut+promoted, each verified by a caller run resolving the channel tag. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] --------- Co-authored-by: donpetry-bot <{}+donpetry-bot@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
* docs(release): add cut/promote/rollback runbook (#498) Operational runbook for the per-agent channel-tag model: how to cut an immutable vX.Y.Z, promote (move stable forward), and roll back (move stable back to the prior release) in < 5 min with no per-caller edits. Captures the gating (promotion is human-driven), the cut-release.sh channel-only-move gap (use git tag -f directly for an already-cut release), verification via the caller's @refs/tags/<agent>/stable resolution line, and rollout gotchas learned in the #495 fleet rollout. Cross-linked from versioning.md. Validated live this cycle: pr-review v1.5.3 and dev-lead v1.2.0 cut+promoted, each verified by a caller run resolving the channel tag. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] --------- Co-authored-by: donpetry-bot <{}+donpetry-bot@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
* docs(release): add cut/promote/rollback runbook (#498) Operational runbook for the per-agent channel-tag model: how to cut an immutable vX.Y.Z, promote (move stable forward), and roll back (move stable back to the prior release) in < 5 min with no per-caller edits. Captures the gating (promotion is human-driven), the cut-release.sh channel-only-move gap (use git tag -f directly for an already-cut release), verification via the caller's @refs/tags/<agent>/stable resolution line, and rollout gotchas learned in the #495 fleet rollout. Cross-linked from versioning.md. Validated live this cycle: pr-review v1.5.3 and dev-lead v1.2.0 cut+promoted, each verified by a caller run resolving the channel tag. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] --------- Co-authored-by: donpetry-bot <{}+donpetry-bot@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>



What
Add
docs/release/runbook.md— the operational runbook for the per-agent channel-tag release model. Cross-linked fromversioning.md.Covers
vX.Y.Zis harmless; promotion (movingstable) is human-driven and restricted by therelease-channel-tagsruleset (OrgAdmin + Integration only).cut-release.sh <agent> <ver> --ref origin/main --push; refuses to overwrite immutable tags.git tag -fmove (documents thecut-release.shchannel-only-move gap).stableback to the priorvX.Y.Zin < 5 min, no caller edits (promotion in reverse).@refs/tags/<agent>/stable (<sha>).Validation (#498 done-when)
The cut → promote → verify path was exercised live this cycle:
pr-review/v1.5.3(the #534 fix) anddev-lead/v1.2.0cut + promoted, each verified by a caller run resolving the channel tag. Rollback is the same single tag-move in reverse against the immutable targets.Closes #498. Pairs with the standards ratification PR petry-projects/.github#440.
🤖 Generated with Claude Code
Summary by CodeRabbit