Skip to content

fix: fail closed on Robot SF gate evidence - #7343

Draft
ll7 wants to merge 13 commits into
mainfrom
codex/issue-1624-merge-authority-repair-20260817
Draft

fix: fail closed on Robot SF gate evidence#7343
ll7 wants to merge 13 commits into
mainfrom
codex/issue-1624-merge-authority-repair-20260817

Conversation

@ll7

@ll7 ll7 commented Aug 17, 2026

Copy link
Copy Markdown
Owner

Summary

  • Make the source-head Merge Queue Gate fail closed instead of advisory.
  • Preserve trusted comment/review carriers and select the newest exact-head verdict; reject malformed fallback and explicit merge/domain holds.
  • Refresh the gate on source-head and review mutations.

Issue

Cross-repo companion to ll7/codex-orchestrator#1624. This is control-plane maintenance only; it changes no Robot SF simulation or benchmark claim.

Validation

  • tests/dev/test_merge_queue_gate.py
  • tests/dev/test_pr_loop_policy.py
  • tests/dev/test_snapshot_pr_queue.py
  • PR_READY_MODE=final BASE_REF=origin/main scripts/dev/pr_ready_check.sh

Follow-up

After this code is merged and the required check is observed on main, the maintainer must apply the reviewed main-protection ruleset change requiring merge-queue-gate. Historical merges are forensic evidence only and are not backfilled.

@coderabbitai

coderabbitai Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 77f46563-5909-4b44-82e4-8e7c73994c6a

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

@github-actions github-actions Bot added the review-bot-auto Managed label that routes code-bearing PRs to CodeRabbit. label Aug 17, 2026
@github-actions

Copy link
Copy Markdown

🔍 PR Contract Check Summary

Overall Status: 🟢 PASSED

Check Status Description
1. Closes-discipline ✅ PASSED Demand Refs #N for epic issues
2. Closure declaration ✅ PASSED Require Closes/Refs for title issues
3. State-refresh-only ✅ PASSED Reject docs/context state updates
4. Evidence hygiene ✅ PASSED Checks markers and provenance fields
5. Evidence writer usage ✅ PASSED Require the shared marked writer path
6. Successor discipline ✅ PASSED Require successor statement on multi-PR issues
7. Worker-lane label ⚪ None Label PRs from cheap worker lane
8. Placeholder docstring ratchet ✅ PASSED Reject NEW TODO/empty docstrings in added diff lines

ℹ️ Info

  • No worker-lane provenance detected.

This check is mechanized. Please resolve any blockers to pass CI.

@ll7

ll7 commented Aug 17, 2026

Copy link
Copy Markdown
Owner Author

Maintainer Decision Required

Current Status:

Action Required by Maintainer:

  1. Review the merge authority repair changes in scripts/dev/merge_queue_gate.py and workflows.
  2. When ready to coordinate with ll7/codex-orchestrator#1624, undraft the PR (mark ready for review).
  3. If approved, apply the reviewed main-protection ruleset change after merge.
  4. Remove decision-required once decided.

@ll7 ll7 added the decision-required Author input needed; not yet prepared as a decision packet label Aug 17, 2026
@ll7

ll7 commented Aug 18, 2026

Copy link
Copy Markdown
Owner Author

Decision packet

Question. Merge this fail-closed source-head Merge Queue Gate now, or hold it until the
orchestrator companion ll7/codex-orchestrator#1645 is ready so the two halves land together?

Direction of the change (not an authority expansion). Every hunk narrows merge authority:

  • .github/workflows/merge-queue-gate.yml:161-177 drops --advisory from the source-PR run, so a
    failed audit now exits non-zero instead of reporting green.
  • .github/workflows/merge-queue-gate.yml:36-58,71-75 widens only the refresh triggers
    (ready_for_review, review_requested, pull_request_review, …) so a stale pass cannot survive a
    head or review mutation.
  • .github/workflows/merge-queue-gate.yml:138-146 makes a missing gate script on the trusted base
    an error for every event, not just merge_group.
  • scripts/dev/merge_queue_gate.py:223-225 adds explicit_merge_hold:<reason> as a new fail
    reason.
  • scripts/dev/pr_loop_policy.py:417-427 changes has_current_accepted_gate_verdict from "any
    historical accepted trailer matches head" to "the newest trusted carrier must carry the accepted
    trailer" — a strict subset of what previously passed. _GATE_VERDICT_RE
    (scripts/dev/pr_loop_policy.py:93) matches only accepted, so a newest gate-verdict: blocked
    correctly yields no accepted verdict.
    Nothing here changes what the factory may auto-merge in the permissive direction, touches a claim
    ledger, preregistration, release, secret, or repository setting. Category (d) does not apply.

What is author-reserved. Two things, neither performed by this PR:

  1. The activation step named in the PR body — adding Merge Queue Gate / merge-queue-gate to the
    main-protection ruleset — is a repository-settings change.
  2. Ordering with the cross-repo half, ll7/codex-orchestrator#1645 (still draft), which is what
    makes the direct merge authority re-run this preflight before CAS. ll7/codex-orchestrator#1624
    is closed, but its 2026-08-17 comment names both PRs as one repair.

Recommendation. Hold as draft until #1645 is ready, then land #1645#7343 → ruleset change.
Strongest alternative. Merge #7343 alone now: harmless to main, and the gate already ignores
its own in-progress check (scripts/dev/merge_queue_gate.py:98-99, covered by
tests/dev/test_merge_queue_gate.py:192). Residual cost: check_pr_ci_status.py has no
equivalent exclusion, so every open non-merge-ready PR would show a red merge-queue-gate in its
rollup and read as CI-failing to worker tooling until it is fully merge-ready.

Automatic consequence of each ruling.

Reopen condition. A confirmed merge that bypasses the gate after activation, or evidence that the
red rollup blocks the normal review loop.

Evidence. Head 862650ef834e6c7bd737ea064cbfd7b74c6b9291 (refreshed onto origin/main
a1892cf453973cd19e7bbba158a9f4132009bcee). pytest tests/dev/test_merge_queue_gate.py tests/dev/test_pr_loop_policy.py tests/dev/test_snapshot_pr_queue.py — 234 passed. The only red
check at the prior head was merge-queue-gate itself, failing with
["pr_is_draft","missing_merge_ready_label","stale_merge_base","missing_exact_head_gate_verdict", "missing_pr_metadata_verdict"] — i.e. the PR's own new fail-closed behavior evaluating itself, not a
defect.

@ll7

ll7 commented Aug 18, 2026

Copy link
Copy Markdown
Owner Author

Self-review disposition (2026-08-18; not an approval): reviewed the exact draft head 862650ef834e6c7bd737ea064cbfd7b74c6b9291 against current public base a1892cf453973cd19e7bbba158a9f4132009bcee.

The diff is coherent as a fail-closed source-PR/merge-group gate repair and adds regression coverage, but it is an authority-expansion change: it changes workflow enforcement for pull-request/review events and explicitly requires a separate main-protection ruleset promotion after merge. The PR remains draft, has no independent exact-head approval, and cannot be merged or promoted by self-review. Required unblock: independent exact-head control-plane review, green current hosted checks, and a separately authorized repository-settings/ruleset decision. No ruleset, branch protection, compute, scheduler, or issue state was mutated.

…-repair-20260817' into codex/issue-1624-merge-authority-repair-20260817
@ll7

ll7 commented Aug 18, 2026

Copy link
Copy Markdown
Owner Author

#7343: hold-for-coordinated-orchestrator-1645-landing

Choose the coordinated landing. Keep this PR draft until ll7/codex-orchestrator#1645 is ready, then review and land the orchestrator authority repair before this repository-side gate, followed by the separately reviewed ruleset activation.

The change is directionally fail-closed, but landing this half alone would make the new gate appear as a red required check to existing PR-rollup tooling before the consumer-side exclusion and exact-head authority path are ready. That operational cost is avoidable, and #1645 is still draft.

Automatic consequence: remove decision-required because the policy choice is now made; mark the PR dependency-blocked and leave it draft. Do not change branch protection, undraft, add merge-ready, or merge. Revive when #1645 is ready for exact-head review and the check_pr_ci_status.py treatment of the gate is explicitly verified. Reopen the decision only if a demonstrated authority bypass makes immediate one-sided landing safer than waiting.

Policy decision was evaluated at head 862650ef834e6c7bd737ea064cbfd7b74c6b9291. Post-ruling readback found the branch had advanced to a37058946135f0953097951d1f7e99dc4c60224c; that update does not clear the #1645 dependency and receives no implementation or merge approval from this ruling.

@ll7 ll7 removed the decision-required Author input needed; not yet prepared as a decision packet label Aug 18, 2026

ll7 commented Aug 18, 2026

Copy link
Copy Markdown
Owner Author

Updated exact head: a37058946135f0953097951d1f7e99dc4c60224c.

This now also closes the independent scripts/dev/stacked_prs.py CAS seam: the newest current Merge Queue Gate / merge-queue-gate check must be present, valid, completed, and successful; malformed/mismatched/missing gate evidence fails closed; canonical trusted merge/domain holds block; and the exact expected head remains required immediately before PUT /pulls/{pr}/merge.

Validation from the current merged-base worktree: 269 focused tests passed, Ruff passed, py_compile passed, and git diff --check passed. The required main-protection rollout and fresh post-merge observation remain maintainer follow-up.

ll7 commented Aug 18, 2026

Copy link
Copy Markdown
Owner Author

PR reconciliation — canonical source-head gate, ordered control-plane rollout

This PR remains the source-head workflow owner. It must be reviewed together with the orchestrator companion and direct-dispatch path, not as an isolated workflow edit.

Required order:

  1. merge fix(dev): refresh benchmark namespace inventory (#7482) #7486 and refresh this branch onto current main;
  2. reconcile the exact trusted-carrier parser and explicit hold semantics with the current fix(dev): fail closed on non-live exact-head SHA carriers (#7448) #7471 provenance guard;
  3. verify the pull_request, pull_request_review, and issue_comment triggers cannot create an event loop and always evaluate the live PR head while running trusted-base code;
  4. prove draft/not-ready PRs fail the gate without blocking ordinary implementation CI jobs unrelated to merge admission;
  5. complete exact-head tests for edited/dismissed reviews, deleted/edited comments, reviewer requests, metadata changes, malformed carriers, and explicit holds;
  6. land the orchestrator companion and then refresh fix(workflow): gate stacked merges on queue check #7417 so every direct CAS path consumes the same authority; and
  7. only after those code paths are on main, execute maintainer rollout bug: activate main-protection merge gate and prove a healthy post-merge observation #7408 and prove a real healthy merge_group observation.

Do not enable the required branch-protection context before the complete authority path is present. Historical merges remain forensic only.

@ll7 ll7 left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Exact-current-main review — blocked

  • PR: #7343 (fix: fail closed on Robot SF gate evidence)
  • Published PR head: 5b1308eb9d4015232200d99d5f7cd37d4e27e1de
  • Current origin/main: 69bf08968dfc528221518a6bde29ef4a2e889754
  • Linked worktree: /home/luttkule/git/robot_sf_ll7.worktrees/pr-7343-current-main-20260821

Refresh result

The branch cannot be rebased cleanly onto the current main. The merge-tree conflict set is:

  • scripts/dev/merge_queue_gate.py
  • scripts/dev/pr_loop_policy.py
  • scripts/dev/stacked_prs.py
  • tests/dev/test_merge_queue_gate.py
  • tests/dev/test_stacked_prs.py

The PR is a draft and its body identifies an external cross-repository authority/ruleset follow-up. Its old-base implementation therefore has no current-base implementation proof and is not eligible for merge admission.

Disposition

  • No code was changed or pushed in the review worktree.
  • Do not infer acceptance from the old exact-head checks.
  • Rebase/repair the conflict set, rerun focused gate/stacked-PR tests and final readiness, reconcile the body, and obtain the required cross-repo/ruleset decision before reconsidering.

base-policy: current-base-refresh-required @ 69bf08968dfc528221518a6bde29ef4a2e889754
gate-verdict: blocked @ 5b1308eb9d4015232200d99d5f7cd37d4e27e1de
merge-ready: no @ 5b1308eb9d4015232200d99d5f7cd37d4e27e1de

@ll7

ll7 commented Aug 23, 2026

Copy link
Copy Markdown
Owner Author

review-claim: verify-7343 @ 5b1308e until 2026-08-23T03:30:00Z

Exact-head review only; no merge. Claim acquired after live head/base and recent activity readback.

@ll7 ll7 left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Exact-head review — blocked on stale/conflicting base

  • PR: #7343 (fix: fail closed on Robot SF gate evidence)
  • Reviewed head: 5b1308eb9d4015232200d99d5f7cd37d4e27e1de
  • PR base: 85577f5dca7d2eeab175c7e37ea782f3a897d842
  • Current origin/main: 0f9d0a9928bba055458df2b3b3a405f2ef845f60
  • Dedicated worktree: /home/luttkule/git/robot_sf_ll7.worktrees/pr-7343-review-20260823
  • Disposition: blocked; no approval and no merge

Findings

P1 — current-base proof is unavailable. GitHub reports the draft PR as mergeable=false,
mergeable_state=dirty, and its base is stale. git merge-tree origin/main HEAD reports content
conflicts in docs/dev_guide.md, scripts/dev/merge_queue_gate.py,
scripts/dev/pr_loop_policy.py, scripts/dev/snapshot_pr_queue.py, scripts/dev/stacked_prs.py,
tests/dev/test_merge_queue_gate.py, and tests/dev/test_stacked_prs.py. Current main already
contains later exact-head provenance, trusted-carrier, and stacked-merge safeguards; the PR's
861-line delta removes or rewrites some of those contracts while adding source-PR fail-closed
workflow enforcement. This remains unique value (current main is still advisory for source PRs),
but reconciling it is a design-level refresh, not a bounded conflict repair. Do not merge this
old-base head.

P1 — exact-head metadata admission is not established. The body was reconciled through the
REST helper at exact head, producing digest
16fa53d3e6de448d2b21d16efc9c52e67eda02aeccba99161d1c55538ff377b9, but the body has no
pr-metadata: reconciled @ <digest> carrier. The PR's listed final-readiness command could not
run in this worktree because duckdb, pyarrow, and pandas are unavailable. A refreshed branch
must add/verify current-base metadata and rerun the final readiness path before admission.

Exact-head validation

  • pytest tests/dev/test_merge_queue_gate.py tests/dev/test_pr_loop_policy.py tests/dev/test_snapshot_pr_queue.py tests/dev/test_stacked_prs.py -q269 passed.
  • uvx --from ruff==0.16.2 ruff check <changed Python files>passed.
  • uvx --from ruff==0.16.2 ruff format --check <changed Python files>7 files already formatted.
  • git diff --check origin/main...HEADpassed.
  • check_docs_evidence_integrity.py --base-ref origin/main --full1992 Markdown files passed.
  • check_docs_proof_consistency.py --base origin/main --json[].
  • PR_READY_MODE=final BASE_REF=origin/main scripts/dev/pr_ready_check.shunavailable because optional analytics dependencies (duckdb, pyarrow, pandas) are missing; not treated as success.

The hosted check snapshot has 30 successes plus one skipped check, with merge-queue-gate
failed on the draft/stale/missing-evidence state. That failure is consistent with the PR's own
fail-closed contract and is not evidence of a repaired current-base implementation.

The cross-repository companion ll7/codex-orchestrator#1645 remains open and the PR's required
ruleset activation is maintainer follow-up. Refresh this branch onto current main, reconcile the
current #7471 provenance guard and #7417 stacked path, rerun the focused/current-base proof, and
obtain the coordinated authority/ruleset decision before reconsideration.

pr-metadata: reconciled @ 16fa53d3e6de448d2b21d16efc9c52e67eda02aeccba99161d1c55538ff377b9
gate-verdict: blocked @ 5b1308e
merge-ready: no @ 5b1308e

@ll7

ll7 commented Aug 23, 2026

Copy link
Copy Markdown
Owner Author

review-claim: released @ 5b1308e

Exact-head review published as COMMENTED; no code push and no merge. Reopen after a current-main refresh and coordinated companion review.

@ll7

ll7 commented Aug 23, 2026

Copy link
Copy Markdown
Owner Author

review-claim: verify-7343 @ 5b1308e until 2026-08-23T18:31:31Z

Corrective short claim recorded after identifying the original marker's expired timestamp. No further PR mutation is planned.

@ll7

ll7 commented Aug 23, 2026

Copy link
Copy Markdown
Owner Author

review-claim: released @ 5b1308e

Exact-head review published as COMMENTED; no code push and no merge. Reopen after a current-main refresh and coordinated companion review.

ll7 added a commit that referenced this pull request Aug 25, 2026
…to v2

Part A: scripts/dev/audit_pr_contract_versions.py classifies open PRs as
v2_valid/v2_invalid/v1_compatibility/body_missing via the canonical
pr_contract_v2 parser, with deterministic JSON, offline fixtures, and a
fail-closed --check mode. v1-compatible PRs are reported, not failed,
during the compatibility period.

Part B: live-migrated draft PR #7343 to a valid pr-contract:v2 block
(change_class: tooling, relates 7665+7892, deferred main-protection
ruleset change recorded without authorizing it) after exact-head and
changed-path revalidation; the complete human body is preserved.

Part C: docs/context/evidence/issue_7892_pr_contract_v2_live_migration/
records the inventory counts, pre/post body digests, parser and
follow-up analyzer results, and the no-CI-event-on-edit observation.

Closes #7892. Relates #7665.
ll7 added a commit that referenced this pull request Aug 25, 2026
…to v2 (#7894)

<!-- pr-contract:v2
change_class: tooling
linked_issues:
  closes:
    - 7892
  relates:
    - 7665
deferred_work:
  status: none
  issues: []
  reason: ""
evidence:
  applicability: na
  tier: null
  result: na
domain_approval:
  required: false
  status: not_required
  domains: []
note: "NA - control-plane workflow/tooling change; no simulation,
benchmark, metric, model, safety, or publication claim."
performance:
  claimed: false
-->

## Summary

Deliver issue #7892's pr-contract.v2 live-migration slice in three
parts:

- **Part A** — `scripts/dev/audit_pr_contract_versions.py`: read-only
inventory of open PR contract versions using the canonical
`pr_contract_v2` parser. Classifies each PR as `v2_valid` / `v2_invalid`
/ `v1_compatibility` / `body_missing`, supports deterministic JSON
output, offline JSON fixtures, and a fail-closed `--check` mode
(malformed v2 markers fail; v1-compatible PRs are reported, not failed,
during the compatibility period).
- **Part B** — live-migrated draft PR #7343 to a valid `pr-contract:v2`
block after exact-head (`5b1308eb9...`) and changed-path revalidation.
The complete human body is preserved; the declared block is
`change_class: tooling`, `relates: [7665, 7892]`, with the deferred
main-protection ruleset change recorded but not authorized.
- **Part C** —
`docs/context/evidence/issue_7892_pr_contract_v2_live_migration/README.md`:
live observation receipt with inventory counts before/after, pre/post
body digests, local parser and follow-up analyzer results, and the
explicit no-CI-event-on-`edited` observation.

## Why / user value

Open PRs keep shipping without a machine-readable contract, and the v1
Markdown parser is the only classification path. This slice adds a
deterministic inventory so the migration to `pr-contract.v2` can be
tracked per PR, proves the live migration path on one representative
tooling PR, and records the exact validation/CI behavior — all without
weakening any hard gate or removing v1 support.

## What changed

- `scripts/dev/audit_pr_contract_versions.py` (new, 170 lines)
- `tests/dev/test_audit_pr_contract_versions.py` (new, 230 lines, 14
tests)
-
`docs/context/evidence/issue_7892_pr_contract_v2_live_migration/README.md`
(receipt)

## Validation / proof

- `uv run pytest tests/dev/test_audit_pr_contract_versions.py -q` → 14
passed
- `uv run pytest tests/dev/test_check_pr_followups.py
tests/test_ci_script_contract.py -q` → regression, 232 passed combined
- `uv run ruff check scripts/dev/audit_pr_contract_versions.py
scripts/dev/pr_contract_v2.py scripts/dev/check_pr_followups.py
tests/dev/test_audit_pr_contract_versions.py` → clean
- `uv run ruff format --check scripts/dev/audit_pr_contract_versions.py
tests/dev/test_audit_pr_contract_versions.py` → clean
- `git diff --check` → clean
- Live inventory: 8 open PRs before migration (all `v1_compatibility`);
7 `v1_compatibility` + 1 `v2_valid` (#7343) after
- Proposed and live #7343 bodies both parse `ok` via
`parse_pr_contract_v2` and pass `analyze_body` (follow-up analyzer)

## Risks and rollback

- The one external write is the #7343 body edit (prepend-only, human
body preserved; documented digests allow restoration). No merge,
approval, v1 removal, branch-protection, or ruleset change is made.
- The inventory tool requires `gh` read access or a fixture; failures
are explicit.

## Follow-up / residual scope

- v1 parser removal and any `main-protection` ruleset change remain
separately authorized (see #7665 and the #7343 deferred-work
declaration).
@ll7

ll7 commented Aug 27, 2026

Copy link
Copy Markdown
Owner Author

review-claim: goal-cycle-20260827-pr7343 @ 5b1308e until 2026-08-27T15:30:00Z

Exact-head review lease for the current draft disposition only. No branch push or merge unless the live head changes and the coordinated companion gate is satisfied.

@ll7 ll7 left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Exact-head review — blocked on coordinated rollout

  • PR: #7343 (fix: fail closed on Robot SF gate evidence)
  • Reviewed head: 5b1308eb9d4015232200d99d5f7cd37d4e27e1de
  • Current origin/main: a8a5405253f7fe77454241aa6557e4b3ffadb892
  • PR base: 85577f5dca7d2eeab175c7e37ea782f3a897d842

Validation

  • git diff --check origin/main...HEAD — passed.
  • uv run pytest tests/dev/test_merge_queue_gate.py tests/dev/test_pr_loop_policy.py tests/dev/test_stacked_prs.py -q215 passed.

Disposition

The exact-head code and targeted tests are coherent, but this draft is not merge-ready. GitHub reports the base as stale against current origin/main, the merge state as conflicting/dirty, and merge-queue-gate as failed. The PR contract and existing maintainer decision comments also hold this source-side change for the coordinated external companion rollout.

I am leaving this as a blocking comment only: no code change, branch push, approval, or merge is justified until the companion decision is satisfied and the branch is refreshed and revalidated at a new exact head.

@ll7

ll7 commented Aug 27, 2026

Copy link
Copy Markdown
Owner Author

review-claim: released @ 5b1308e

Exact-head blocked review published as COMMENTED (review 5042247544). No code push, approval, or merge. Reopen after the coordinated companion rollout and a fresh current-main rebase/revalidation.

@ll7

ll7 commented Aug 28, 2026

Copy link
Copy Markdown
Owner Author

Coordinated-rollout blocker refresh — 2026-08-28

Two Robot SF prerequisites named in the earlier handoff are now complete: #7486 and #7417 merged. Current main also contains later merge-receipt and PR-contract hardening, so their behavior must be preserved in any refresh of this old branch.

The controlling cross-repository dependency remains unresolved: ll7/codex-orchestrator#1645 is still open and draft. The separately authorized rollout issue #7408 is also open with state:blocked-external-input; no main-protection or ruleset change is authorized here. GitHub reports this PR's current merge tree as conflicting against its stale base.

Disposition remains draft and dependency-blocked. The next valid implementation step is a coordinated owner refresh after the orchestrator companion is ready, followed by current-main conflict reconciliation and exact-head control-plane validation. No merge-ready, undraft, branch-protection, or merge action is justified by the completed Robot SF prerequisites alone.

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

Labels

dependency:has-blockers needs-review review-bot-auto Managed label that routes code-bearing PRs to CodeRabbit.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant