ci(dev-lead): pin self-host caller to dev-lead/next (ring-0 canary) - #859
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Note Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported. |
|
Warning Review limit reached
More reviews will be available in 48 minutes and 40 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits. 🚦 How do rate limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly. 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)
✨ 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 |
Dev-Lead — review-changes (no-changes)No changes were needed for this PR. |
|
Advisory bots were rate-limited; auto-approval is withheld until they recover. pr-review-sweep will re-review this PR after 2026-06-21T04:14:39Z. |
Dev-Lead — review-changes (no-changes)No changes were needed for this PR. |
|
Advisory bots were rate-limited; auto-approval is withheld until they recover. pr-review-sweep will re-review this PR after 2026-06-21T04:26:53Z. |
Dev-Lead — fix-bot-comment (no-changes)Agent reasoning |
donpetry-bot
left a comment
There was a problem hiding this comment.
Automated review — APPROVED ✓
Risk: LOW
Reviewed commit: 8e3e8db91d428ee7204ac79e5b7093cdeb9c56e0
Review mode: triage-approved (single reviewer)
Summary
Single-file CI config change: flips the dev-lead.yml thin-caller from the @dev-lead/stable channel to @dev-lead/next (both uses: ref and agent_ref), implementing the ring-0 self-host canary design. permissions/secrets structure unchanged; all CI green.
Linked issue analysis
No formal closing issue is linked (closingIssuesReferences empty). The PR is design-driven: it implements the ring-0 canary described in docs/initiatives/agentic-release-strategy.md and picks up dev-lead v1.4.0 (auto-rebase + applied-rate fixes, #812). The rationale is well-documented in the PR body and commit message. No issue acceptance criteria to verify against; triage already cleared this as low-risk config.
Findings
No blocking findings.
- The @dev-lead/next ref is a sanctioned MUTABLE channel tag on a FIRST-PARTY reusable workflow (petry-projects/.github-private/.github/workflows/dev-lead-reusable.yml), explicitly carved out of the SHA-pin standard by AGENTS.md (Release channel tags & the mutable-ref exception). It must NOT be flagged as an unpinned-action smell.
- Channel-tag moves are bounded by the release-channel-tags ruleset; agents running as GITHUB_TOKEN cannot move/delete tags.
- dev-lead.yml is a thin caller stub; per AGENTS.md repo-specific pin adjustments are permitted, and the change touches only the documented pin fields plus its header comment.
- Diff contains no credential-like content; gitleaks CI check passed (MCP secret scan not separately invoked — nothing in the diff resembles a secret).
- Operational note (non-blocking): running next means this repo intentionally soaks a less-promoted channel — that is the intended ring-0 behavior, not a defect.
CI status
All required checks green: CodeQL (actions+python), Secret scan (gitleaks), shellcheck/bats, AgentShield, agent security scan, SonarCloud quality gate passed (0 new issues), and the full Test Dev-Lead Agent suite (stub-structure, caller-permissions, toplevel-permissions, validate-fixtures, etc.). Advisory bots (CodeRabbit/Gemini/Codex) were rate-limited/unsupported but are non-blocking. mergeStateStatus=BLOCKED only due to required org-leads human review (REVIEW_REQUIRED).
Reviewed automatically by the PR-review agent (single-reviewer mode: fable 5). Reply if you need a human review.
|
Auto-rebase failed — merge conflict — this branch has conflicts with dev-lead will attempt to resolve this automatically. If it cannot, a follow-up comment will explain what needs manual attention. To resolve manually instead: |
`.github-private` is ring 0 in the agentic release strategy — the self-host canary that runs a release before it is centrally promoted to `dev-lead/stable` for consumer repos. The caller was pinned to `@dev-lead/stable`, so this repo was running the same channel as consumers and never actually exercised new releases first. Point the `uses:` ref and `agent_ref` at `@dev-lead/next` so self-host runs the canary channel. Concretely this picks up dev-lead v1.4.0, which contains the auto-rebase conflict-detection + applied-rate fixes (#812) — so the rebase path and the #737/#767 instrumentation start reflecting the corrected behavior here before stable promotion. Stub validator (tests/dev-lead/integration/test_dev_lead_stub.sh) passes — it accepts any first-party channel tag. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QrRBgQJ7QqjMsRySzkPqwJ
The merge-base changed after approval.
8e3e8db to
2e09f3a
Compare
Dev-Lead — rebase (applied)Rebase completed and pushed. |
Dev-Lead — fix-bot-comment (no-changes)Agent reasoning |
Dev-Lead — fix-bot-comment (no-changes)Agent reasoning |
|
Dev-Lead — fix-bot-comment (no-changes)Agent reasoning |
|
Advisory bots were rate-limited; auto-approval is withheld until they recover. pr-review-sweep will re-review this PR after 2026-06-21T08:29:16Z. |
donpetry-bot
left a comment
There was a problem hiding this comment.
Automated review — APPROVED ✓
Risk: LOW
Reviewed commit: 97d3fa00a169cb80afb13d805c5f173ab3192f1a
Review mode: triage-approved (single reviewer)
Summary
Single-file CI config change (.github/workflows/dev-lead.yml, +6/-5): flips the dev-lead thin-caller from the @dev-lead/stable channel to @dev-lead/next on both the uses: ref and agent_ref, implementing the ring-0 self-host canary so this repo soaks each dev-lead release before central promotion to consumers. Only the pin fields and their explanatory header comment change; on/permissions/secrets structure is untouched.
Linked issue analysis
No formal closing issue is linked (closingIssuesReferences empty). The change is design-driven: it realizes the ring-0 canary described in docs/initiatives/agentic-release-strategy.md and picks up dev-lead v1.4.0 (auto-rebase conflict-detection + applied-rate fixes, #812). Rationale is thoroughly documented in the PR body and commit message; there are no issue acceptance criteria to verify against. Triage already cleared this as low-risk config.
Findings
No blocking findings.
- @dev-lead/next is a sanctioned MUTABLE channel tag on a FIRST-PARTY reusable workflow (petry-projects/.github-private/.github/workflows/dev-lead-reusable.yml). AGENTS.md (Release channel tags & the mutable-ref exception) explicitly carves out stable/next/ring* tags from the SHA-pin standard, so this must NOT be flagged as an unpinned-action smell.
- The dev-lead.yml header explicitly permits modifying this thin caller on PR branches to adjust repo-specific needs; the diff stays within the documented pin fields plus the header comment.
- Channel-tag moves are bounded by the release-channel-tags ruleset; agents running as GITHUB_TOKEN cannot move/delete the next/stable tags, so flipping the caller's pin does not grant new tag-mutation power.
- Diff contains no credential-like content; gitleaks CI check passed. The run_secret_scanning MCP tool was not exposed in this environment (GitHub Secret Protection not surfaced here), so it was not separately invoked — nothing in the single-line ref change resembles a secret.
- Operational note (non-blocking): running next means this repo intentionally soaks a less-promoted channel — that is the intended ring-0 behavior, not a defect.
CI status
All required checks green: CodeQL (actions+python), Secret scan (gitleaks), shellcheck/bats/validate-agent-profiles/gh-aw-compile, AgentShield, Agent Security Scan, Holdout Guard, Test-Deletion Guard, unit-tests, SonarCloud (Quality Gate passed, 0 new issues), and the full Test Dev-Lead Agent suite (stub-structure, caller-permissions, toplevel-permissions, validate-fixtures, auto-rebase-stub, etc.). The two CANCELLED entries (dev-lead / dispatch, dev-lead / ci-relay) are the dev-lead agent's own runs superseded by newer commits, and dependency-audit ecosystem jobs are SKIPPED (no matching ecosystems) — both non-blocking. Advisory bots Codex/Gemini were unavailable (usage limit / unsupported file type) and CodeRabbit was rate-limited — all non-blocking. mergeStateStatus=BLOCKED only reflects the required human review gate (REVIEW_REQUIRED).
Reviewed automatically by the PR-review agent (single-reviewer mode: fable 5). Reply if you need a human review.



Why
.github-privateis ring 0 in the agentic release strategy — the self-host canary that should run a release before it's centrally promoted todev-lead/stablefor consumer repos. But the dev-lead caller was pinned to@dev-lead/stable, so this repo ran the same channel as consumers and never actually exercised new releases first.Concrete consequence: dev-lead v1.4.0 — which contains the auto-rebase conflict-detection + applied-rate fixes (#812) — is already cut and sitting on
dev-lead/next, butdev-lead/stableis still v1.3.0 (the old buggy code). So the rebase path here keeps running the broken version and the #737/#767applied-rate metric stays stuck at 0%.Change
Point the dev-lead thin caller's
uses:ref andagent_reffrom@dev-lead/stable→@dev-lead/next, so self-host runs the canary channel (currently v1.4.0). This makes the auto-rebase fix live in this repo and lets the instrumentation start reflecting corrected behavior, ahead of the eventual centralstablepromotion.Verification
tests/dev-lead/integration/test_dev_lead_stub.sh— passes (validator accepts any first-party channel tag; confirms thin-caller structure +permissions: {}intact).Notes / out of scope
docs/initiatives/agentic-release-strategy.md("Ring 0 =.github-privateself-host runsnext").pr-review-trigger.ymlsimilarly pins@pr-review/stable; I left it unchanged — flipping pr-review to itsnextchannel is a separate call that depends onpr-review/next's own soak state. Happy to do it in a follow-up if you want ring-0 to canary pr-review too.@dev-lead/stable, so they're unaffected until a normal central promotion.🤖 Generated with Claude Code
Generated by Claude Code