Skip to content

feat: implement issue #1036 — Populate canary-rings.json with the 6 #482 reusables (registry is dev-lead-only → evaluate-all covers nothing else) - #1037

Closed
don-petry wants to merge 4 commits into
mainfrom
dev-lead/issue-1036-20260703-0609
Closed

feat: implement issue #1036 — Populate canary-rings.json with the 6 #482 reusables (registry is dev-lead-only → evaluate-all covers nothing else)#1037
don-petry wants to merge 4 commits into
mainfrom
dev-lead/issue-1036-20260703-0609

Conversation

@don-petry

@don-petry don-petry commented Jul 3, 2026

Copy link
Copy Markdown
Collaborator

Closes #1036

Implemented by dev-lead agent. Please review.

Summary by CodeRabbit

  • New Features

    • Added additional rollout configurations for several automated agents, expanding canary coverage across multiple release channels.
    • Improved cross-repo rollout handling for reusable workflows, with clearer channel membership and transition behavior.
  • Tests

    • Added broader validation for the new rollout configurations, including ring membership, workflow registration, and gate settings.
    • Extended end-to-end coverage to confirm all supported agents are included in the rollout evaluation.

 reusables (registry is dev-lead-only → evaluate-all covers nothing else)
@don-petry
don-petry requested a review from a team as a code owner July 3, 2026 06:17
Copilot AI review requested due to automatic review settings July 3, 2026 06:17
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@coderabbitai

coderabbitai Bot commented Jul 3, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@don-petry, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 31 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

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, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 370578ff-94a3-445e-8f05-86213d8d47df

📥 Commits

Reviewing files that changed from the base of the PR and between caa32fe and f099d7b.

📒 Files selected for processing (3)
  • scripts/canary-rollout.sh
  • standards/canary-rings.json
  • tests/canary_rollout.bats
📝 Walkthrough

Walkthrough

Adds six new agent entries (agent-shield, dependency-audit, auto-rebase, dependabot-automerge, dependabot-rebase, pr-review-mention) to standards/canary-rings.json with ring topology and #548 gate configuration, and extends tests/canary_rollout.bats with corresponding validation tests.

Changes

Canary Registry Onboarding

Layer / File(s) Summary
Register #482 agents
standards/canary-rings.json
Adds six agent entries with host/reusable/workflow identifiers, ring membership across next/ring0/ring1/stable, and shared #548 gate baseline/transition parameters with per-agent _topology_note.
Registration and identifier tests
tests/canary_rollout.bats
Adds _REUSABLES_482 constant and tests confirming all six agents exist with expected host, reusable workflow path, and run_workflow.
Topology and member resolution tests
tests/canary_rollout.bats
Validates shared ring topology across channels and resolve_members expansion for next, ring0, ring1, and stable memberships.
Gate knobs and orchestration tests
tests/canary_rollout.bats
Verifies per-transition gate parameters, allow_pre_existing flags, and an evaluate-all test confirming all 7 agents are reported.

Estimated code review effort: 2 (Simple) | ~12 minutes

Possibly related issues

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly names the main change: populating canary-rings.json with the six #482 reusables.
Linked Issues check ✅ Passed The added agents, ring topology, and gate settings match #1036's registry and rollout requirements.
Out of Scope Changes check ✅ Passed The changes stay within the registry update and its test coverage; no unrelated code paths appear added.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev-lead/issue-1036-20260703-0609

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead — waiting on PR blockers (intent: review-changes)

PR: #1037
No changes were committed, but the PR still has blocking checks or reviews (failing or cancelled checks, or changes-requested reviews). The retry cron will re-attempt automatically. Next attempt after: 2026-07-03T06:48:47Z

@don-petry

Copy link
Copy Markdown
Collaborator Author

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.
Next attempt after: 2026-07-03T06:48:47Z

@don-petry
don-petry enabled auto-merge (squash) July 3, 2026 06:18

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Code Review

This pull request registers six new cross-repo reusable workflows in standards/canary-rings.json and adds comprehensive integration tests in tests/canary_rollout.bats to verify their configurations. The review feedback suggests improving test robustness by explicitly asserting successful exit statuses for command executions and expanding test coverage to include assertions for the sample_clamp_min and sample_clamp_max gate transition parameters.

Comment thread tests/canary_rollout.bats
Comment thread tests/canary_rollout.bats
Comment thread tests/canary_rollout.bats
@don-petry
don-petry disabled auto-merge July 3, 2026 06:19
@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead — fix-reviews (applied)

Changes committed and pushed.

@don-petry
don-petry enabled auto-merge (squash) July 3, 2026 06:23

Copilot AI 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.

Pull request overview

Adds the six #482 cross-repo reusables to the canary rollout registry so fleet-wide evaluate-all can “see” them (per #1036), and extends the Bats suite to assert the expected registry shape/topology/gate knobs.

Changes:

  • Register 6 additional agents (agent-shield, dependency-audit, auto-rebase, dependabot-automerge, dependabot-rebase, pr-review-mention) in standards/canary-rings.json using the shared ring topology and #548 gate defaults.
  • Add Bats assertions that the new agents exist in the registry, have the correct host/reusable/run_workflow metadata, share the topology, and surface in evaluate-all.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
tests/canary_rollout.bats Adds regression tests asserting the six #482 agents are present and correctly shaped in the registry, including a minimal evaluate-all visibility check.
standards/canary-rings.json Extends the canary registry with the six #482 cross-repo reusables and their ring topology + #548 gate knobs.

Comment thread standards/canary-rings.json

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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 `@standards/canary-rings.json`:
- Around line 61-282: The canary ring entries repeat the same gate configuration
block verbatim across multiple workflows, creating drift risk and making future
`#548` default changes hard to maintain. Refactor the duplicated gate data so the
common `_standard`, `_topology_note`, `baseline_window_days`,
`baseline_spike_cap_multiple`, `control`, and `transitions` values are defined
once and reused by name, using a shared `gate_profiles`-style structure or
equivalent orchestration-level indirection in the registry. Keep the workflow
entries like `agent-shield`, `dependency-audit`, `auto-rebase`,
`dependabot-automerge`, `dependabot-rebase`, and `pr-review-mention` pointing to
the shared gate definition rather than copying it inline.
🪄 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: 6ea4960e-f18f-41ef-98cd-db822db4e6b1

📥 Commits

Reviewing files that changed from the base of the PR and between a492721 and caa32fe.

📒 Files selected for processing (2)
  • standards/canary-rings.json
  • tests/canary_rollout.bats

Comment thread standards/canary-rings.json
@don-petry
don-petry disabled auto-merge July 3, 2026 06:23
@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead — review-changes (applied)

Changes committed and pushed.

@don-petry
don-petry enabled auto-merge (squash) July 3, 2026 06:37
@don-petry
don-petry disabled auto-merge July 3, 2026 06:37
@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead — waiting on PR blockers (intent: review-changes)

PR: #1037
No changes were committed, but the PR still has blocking checks or reviews (failing or cancelled checks, or changes-requested reviews). The retry cron will re-attempt automatically. Next attempt after: 2026-07-03T07:11:08Z

@don-petry

Copy link
Copy Markdown
Collaborator Author

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.
Next attempt after: 2026-07-03T07:11:08Z

@don-petry
don-petry enabled auto-merge (squash) July 3, 2026 06:41
coderabbitai[bot]
coderabbitai Bot previously approved these changes Jul 3, 2026
@don-petry
don-petry disabled auto-merge July 3, 2026 06:42
@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead — fix-reviews (applied)

Changes committed and pushed.

@don-petry
don-petry disabled auto-merge July 3, 2026 06:46
@sonarqubecloud

sonarqubecloud Bot commented Jul 3, 2026

Copy link
Copy Markdown

@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead — review-changes (no-changes)

No changes were needed for this PR.

@don-petry
don-petry enabled auto-merge (squash) July 3, 2026 06:49
@donpetry-bot

Copy link
Copy Markdown
Contributor

Review — fix requested (cycle 1/3)

The automated review identified the following issues. Please address each one:

Findings to fix

Automated review — NEEDS HUMAN REVIEW

Risk: MEDIUM
Reviewed commit: f099d7b6d09ff817c377115a88528244942deb71
Cascade: triage → deep (triage: haiku 4.5 → deep: opus 4.8 + duck: o4-mini → audit: fable 5)

Summary

PR #1037 onboards the 6 #482 cross-repo reusables into canary-rings.json and extends the orchestrator to resolve/move channel tags in the host repo (petry-projects/.github) via gh api instead of local git. Code is well-structured, injection-free (registry-sourced values passed as gh args, no eval), and thoroughly tested; all CI including every security scanner is green. It cannot merge: GitHub reports mergeable=CONFLICTING / mergeStateStatus=DIRTY. Escalating on the failed merge gate (not to security audit) — needs a rebase on main. No downstream consumers pinned (downstream-impact: none).

Findings

  • major: GitHub reports mergeable=CONFLICTING and mergeStateStatus=DIRTY. The branch has unresolved conflicts with main and cannot be merged as-is; rebase/resolve before merge. This is the blocking gate.
  • info: cmd_promote/cmd_rollback now force-move (PATCH refs/tags with force=true, or create) channel tags in the cross-repo host petry-projects/.github via gh api, mirroring the prior 'git tag -f && git push --force'. This requires the automation token to hold write access to another (public) repo. Not a code defect — confirm the invoking workflow's token is least-privilege scoped for cross-repo tag writes.
  • info: Gemini's low-priority request to add sample_clamp_min/max assertions is already satisfied at head: the 'gate knobs' test asserts sample_clamp_min==3 and sample_clamp_max==15 for all 6 agents. Remaining Gemini nits (assert status==0 in resolve_members/jq tests) are optional robustness improvements. CodeRabbit's earlier CHANGES_REQUESTED was DISMISSED; SonarCloud quality gate passed; Codex hit usage limits (no findings).
  • minor: The feat: implement issue #545 — Compliance: non-stub-dependency-audit.yml #548 gate defaults are duplicated inline across all 6 agent entries; _gate_profiles._note acknowledges this DRY tradeoff (JSON lacks anchors) and defers a gate_profiles indirection to a future issue. Acceptable, but future edits to the defaults must touch all entries.
  • info: run_secret_scanning MCP tool not available in this environment (GitHub Secret Protection not exposed); relied on the passing gitleaks CI check. No secrets observed in the diff.

Reviewed by the PR-review cascade (triage: haiku 4.5 → deep: opus 4.8 + duck: o4-mini → audit: fable 5). Reply if you need a human review.

Additional tasks

  1. Resolve all unresolved review thread comments from other reviewers
  2. Ensure all CI checks pass after your changes
  3. Rebase on the target branch if behind
  4. Do NOT modify files unrelated to the findings above

The review cascade will automatically re-review after new commits are pushed.

@don-petry

Copy link
Copy Markdown
Collaborator Author

Closing as superseded. All six #482 reusables are already registered in standards/canary-rings.json on main, and #1036 is CLOSED COMPLETED. This PR now conflicts against the landed registry.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Populate canary-rings.json with the 6 #482 reusables (registry is dev-lead-only → evaluate-all covers nothing else)

3 participants