Skip to content

feat: implement issue #1590 — sweep orphan-rescue uses FORCE_REVIEW, bypassing CI/advisory gates — overloaded flag + TOCTOU on the CI snapshot - #1598

Merged
don-petry merged 3 commits into
mainfrom
dev-lead/issue-1590-20260831-0305
Aug 31, 2026
Merged

don-petry merged 3 commits into
mainfrom
dev-lead/issue-1590-20260831-0305

Conversation

@don-petry

@don-petry don-petry commented Aug 31, 2026 •

Copy link
Copy Markdown
Collaborator

User description

Closes #1590

Implemented by dev-lead agent. Please review.


CodeAnt-AI Description

Prevent automated orphan-review rescues from bypassing quality gates

What Changed

  • Automated orphan-marker rescues now bypass only the same-commit no-op, while CI, advisory, maintainer, and other review checks remain enforced
  • Human-triggered force reviews retain their explicit ability to bypass all review gates
  • Added regression coverage for failing and pending CI, orphan-marker recovery, normal idempotency behavior, and human force-review behavior

Impact

✅ Fewer automated reviews bypassing failing or pending CI
✅ Safer orphaned-review recovery
✅ Human break-glass reviews remain available

💡 Usage Guide

Checking Your Pull Request

Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.

Talking to CodeAnt AI

Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:

@codeant-ai ask: Your question here

This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.

Example

@codeant-ai ask: Can you suggest a safer alternative to storing this secret?

Preserve Org Learnings with CodeAnt

You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:

@codeant-ai: Your feedback here

This helps CodeAnt AI learn and adapt to your team's coding style and standards.

Example

@codeant-ai: Do not flag unused imports.

Retrigger review

Ask CodeAnt AI to review the PR again, by typing:

@codeant-ai: review

Check Your Repository Health

To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.

…bypassing CI/advisory gates — overloaded flag + TOCTOU on the CI snapshot
@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.

@qodo-code-review

Copy link
Copy Markdown

ⓘ Qodo reviews are paused because your trial has ended. Ask your workspace admin to add credits to resume reviews. Manage billing

@codeant-ai

codeant-ai Bot commented Aug 31, 2026 •

Copy link
Copy Markdown

🤖 CodeAnt AI — Review Status

Status Commit Started (UTC) Finished (UTC)
✅ Reviewed your PR f536664 Aug 31, 2026 · 03:16 03:18

@codeant-ai

codeant-ai Bot commented Aug 31, 2026

Copy link
Copy Markdown

Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@coderabbitai

coderabbitai Bot commented Aug 31, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 8 minutes.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: ba934c6b-124f-4caa-b3cf-c6fc4c4c5002

📥 Commits

Reviewing files that changed from the base of the PR and between 017ed68 and 33da79a.

📒 Files selected for processing (5)
  • .github/workflows/lint.yml
  • .github/workflows/pr-review.yml
  • scripts/review-one-pr.sh
  • scripts/sweep-stuck-reviews.sh
  • tests/test_review_one_pr_force_re_review.bats

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.

@codeant-ai codeant-ai Bot added the size:L This PR changes 100-499 lines, ignoring generated files label Aug 31, 2026

@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 introduces a narrow bypass flag, FORCE_RE_REVIEW, to distinguish automated orphan-rescue sweeps from human-initiated overrides (FORCE_REVIEW). This ensures that automated sweeps bypass only the same-SHA idempotency check while keeping quality gates (such as CI status) armed, preventing stale CI results from being ignored. A comprehensive suite of BATS regression tests has been added to verify this behavior. Feedback is provided regarding a redundant manual cleanup of $BATS_TEST_TMPDIR in the test teardown function, which is already automatically managed by BATS.

Comment thread tests/test_review_one_pr_force_re_review.bats Outdated
Comment thread scripts/review-one-pr.sh Outdated
@donpetry-bot

Copy link
Copy Markdown
Contributor

CI checks on this PR are still running. Once they complete, re-mention @donpetry-bot to trigger a fresh review.

Posted by the donpetry-bot PR-review cascade.

@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead — fix-bot-comment (no-changes)

Agent reasoning
Issues addressed: 0
- Quality Gate passed with 0 new issues (informational status report — no actionable findings)
Tier 1 blockers: None
Additional feedback: gemini-code-assist[bot] flagged redundant BATS_TEST_TMPDIR cleanup in test teardown (informational; not a blocking issue)
Result: No changes required
```

@don-petry
don-petry enabled auto-merge (squash) August 31, 2026 03:25
donpetry-bot
donpetry-bot previously approved these changes Aug 31, 2026

@donpetry-bot donpetry-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.

Automated review — APPROVED ✓

Risk: MEDIUM
Reviewed commit: 30fe2b5a7d738bee5f3c1997291c586d2793d7aa
Review mode: triage-approved (single reviewer)

Summary

Splits the overloaded FORCE_REVIEW flag per issue #1590: FORCE_REVIEW remains the human @mention break-glass (set only on repository_dispatch) and bypasses all review gates, while the new FORCE_RE_REVIEW (mapped from the force_review input used by the automated orphan-rescue sweep) clears only the same-SHA idempotency no-op, leaving the CI/advisory/maintainer gates armed. Verified at head 30fe2b5: FORCE_RE_REVIEW is honored at exactly one site in review-one-pr.sh (the idempotency block, line 510); every other gate keys on FORCE_REVIEW alone. New bats regression suite covers failing/pending CI under the narrow flag, orphan-marker rescue, the no-flag control, and unchanged break-glass behavior, and is registered in lint.yml.

Linked issue analysis

Closes #1590 and substantively addresses all acceptance criteria: (1) the automated orphan-rescue path can no longer bypass the ci-failing/ci-pending/advisory gates — the sweep's force_review=true now maps to the narrow FORCE_RE_REVIEW; (2) the human @mention override retains today's behavior (repository_dispatch → FORCE_REVIEW=true, covered by two 'unchanged' tests); (3) the AC test exists — FORCE_RE_REVIEW + failing/pending CI asserts exit 100 with skip reasons ci-failing/ci-pending recorded, and asserts the break-glass bypass message is absent. This also resolves the TOCTOU: a CI status that goes red after the sweep's snapshot is re-validated at execution time.

Findings

No blocking findings.

  • Unresolved advisory-bot threads (non-blocking): gemini-code-assist flagged the redundant rm -rf "$TEST_DIR" in bats teardown (BATS_TEST_TMPDIR is auto-cleaned) — cosmetic; the dev-lead fix-bot-comment pass triaged it as informational/no-changes. codeant-ai noted FORCE_RE_REVIEW bypasses the idempotency no-op for any same-head marker, so a verdict landing between the sweep's snapshot and execution could produce a duplicate review cascade. This is a bounded race (worst case: one duplicate review, never a gate bypass), it is strictly narrower than the pre-#1590 behavior where the same window granted a full gate bypass, and the per-PR automation budget (#926) still caps runaway. Acceptable as-is.
  • Behavior change, intended: a manual workflow_dispatch with force_review=true now gets only the narrow idempotency bypass; the full break-glass is reachable solely via @mention (repository_dispatch), exactly as the issue specifies.
  • Workflow safety: the new env plumbing uses typed inputs/literals only (no untrusted interpolation into run scripts); FORCE_RE_REVIEW is job-level env inherited by the review step.
  • Secret scan: the run_secret_scanning MCP tool is not available in this session; gitleaks CI check is green and the diff introduces no credentials.

CI status

All checks green: shellcheck, bats, unit-tests, actionlint, CodeQL (actions + python), Agent Security Scan, gitleaks, SonarCloud quality gate, template-drift, and all workflow-governance gates pass at 30fe2b5. The single review / review check shows CANCELLED — that is a superseded run of this review pipeline itself, not a code-quality signal. Several dependency-audit jobs SKIPPED (no matching ecosystems).


Reviewed automatically by the PR-review agent (single-reviewer mode: fable 5). Reply if you need a human review.

@donpetry-bot

Copy link
Copy Markdown
Contributor

Advisory bots were rate-limited; auto-approval is withheld until they recover. pr-review-sweep will re-review this PR after 2026-08-31T04:30:31Z.

donpetry-bot
donpetry-bot previously approved these changes Aug 31, 2026

@donpetry-bot donpetry-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.

Automated review — APPROVED ✓

Risk: MEDIUM
Reviewed commit: 30fe2b5a7d738bee5f3c1997291c586d2793d7aa
Review mode: triage-approved (single reviewer)

Summary

Splits the overloaded force_review flag into FORCE_REVIEW (human @mention break-glass, unchanged, reachable only via repository_dispatch) and FORCE_RE_REVIEW (narrow idempotency-only bypass used by the automated orphan-rescue sweep). The narrow flag is honored solely by the same-SHA idempotency no-op; the ci-failing, ci-pending, advisory, changes-requested, escalation, and cycle-cap gates all remain keyed on FORCE_REVIEW alone, closing the gate-bypass and CI-snapshot TOCTOU described in issue #1590. Comprehensive bats regression coverage added (166 lines, 6 tests) and wired into lint.yml.

Linked issue analysis

Closes #1590. All three acceptance criteria are substantively met: (1) the automated orphan-rescue path can no longer bypass the CI-failing/CI-pending/advisory gates — sweep-stuck-reviews.sh's force dispatch now maps to FORCE_RE_REVIEW, which only clears the same-SHA marker no-op; (2) the human @mention override retains today's behaviour (repository_dispatch → FORCE_REVIEW, verified by two 'unchanged' tests); (3) the required regression test exists — AC1 tests assert a failing/pending required check produces skip reason ci-failing/ci-pending even with FORCE_RE_REVIEW=true, with a no-flag control proving idempotency stays armed. Note: a human workflow_dispatch with force_review input now gets only the narrow bypass — this matches the issue's suggested shape (break-glass 'reachable only from an @mention') and is documented in the pr-review.yml comments.

Findings

Triage-approved confirmation review — triage assessment verified as correct.

Non-blocking observations:

  1. codeant-ai (Major, race condition, scripts/review-one-pr.sh:~510): valid but narrow residual race — if a valid verdict lands on the orphan marker between the sweep's snapshot and the dispatched run, FORCE_RE_REVIEW still bypasses the idempotency no-op, producing one duplicate review cascade. Worst case is redundant work (bounded by the per-PR automation budget #926), not a gate bypass, and it is strictly better than the pre-PR behaviour (full gate bypass + the same race). Reasonable follow-up: when only FORCE_RE_REVIEW is set, re-check at execution time whether the head marker has gained a verdict, and no-op if so.
  2. gemini-code-assist (low, tests teardown): rm -rf $BATS_TEST_TMPDIR in teardown is redundant (BATS manages it) — harmless style nit.

Secret scan: run_secret_scanning MCP tool not available in this session; gitleaks CI check passed (SUCCESS). No secrets, credentials, or auth material in the diff — changes are gate-logic comments, env-flag wiring, and test fixtures with a stubbed gh CLI and fake token values.

Scope/standards: pr-review.yml is not a frozen thin-caller stub; caller-stub-freeze, actionlint, shellcheck, and all workflow-guard checks passed.

CI status

All checks green: shellcheck, bats, unit-tests, actionlint, CodeQL (actions + python), gitleaks, SonarCloud quality gate, agent-shield, and all workflow-guard/validation checks SUCCESS. One 'review / review' run shows CANCELLED — superseded by a later successful run of the same workflow. mergeStateStatus BLOCKED reflects only the pending required review approval.


Reviewed automatically by the PR-review agent (single-reviewer mode: fable 5). Reply if you need a human review.

@donpetry-bot
donpetry-bot dismissed their stale review August 31, 2026 03:34

Superseded by automated re-review at 30fe2b5.

donpetry-bot
donpetry-bot previously approved these changes Aug 31, 2026

@donpetry-bot donpetry-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.

Automated review — APPROVED ✓

Risk: MEDIUM
Reviewed commit: 30fe2b5a7d738bee5f3c1997291c586d2793d7aa
Review mode: triage-approved (single reviewer)

Summary

Confirms the triage assessment: this PR correctly implements issue #1590 by splitting the overloaded force flag. FORCE_REVIEW (human @mention break-glass, repository_dispatch only) retains full gate-bypass semantics; the new FORCE_RE_REVIEW (mapped from the force_review workflow input used by the orphan-rescue sweep) clears only the same-SHA idempotency no-op at review-one-pr.sh:510, leaving the ci-failing, ci-pending, advisory, maintainer, changes-requested, escalation, and cycle-cap gates keyed on FORCE_REVIEW alone. Plumbing verified end-to-end at the head SHA: sweep-stuck-reviews.sh → pr-review-trigger.yml → pr-review.yml env mapping → review-one-pr.sh. 166-line bats regression suite covers failing/pending CI under the narrow flag, orphan-marker rescue, no-flag idempotency control, and unchanged break-glass behavior, and is wired into lint.yml.

Linked issue analysis

Issue #1590 (sweep orphan-rescue uses FORCE_REVIEW, bypassing CI/advisory gates) is substantively addressed via the issue's preferred "flag split" shape. All three acceptance criteria are met: (1) the automated orphan-rescue path can no longer bypass CI-failing/CI-pending/advisory gates — every quality gate checks FORCE_REVIEW only; (2) the human @mention override is unchanged (repository_dispatch still maps to FORCE_REVIEW=true); (3) regression tests assert a failing/pending required check under FORCE_RE_REVIEW skips with the recorded reasons ci-failing/ci-pending. The stale-CI-snapshot TOCTOU is closed because gates re-validate at execution time.

Findings

No blocking findings.

  • Non-blocking (validated advisory finding, pre-existing): codeant-ai flagged a race at review-one-pr.sh:510 — FORCE_RE_REVIEW bypasses the idempotency no-op even if the "orphan" marker gained a valid verdict between the sweep's snapshot and execution, producing one duplicate review cascade. The claim is technically correct, but it is not a regression: the pre-#1590 FORCE_REVIEW path had the same race plus a full gate bypass. Impact is bounded to one extra fully-gated review (automation budget #926 and cycle caps still apply). A reasonable follow-up would be re-checking marker orphan-ness (no verdict) at execution time before honoring FORCE_RE_REVIEW.
  • Non-blocking (trivial): gemini-code-assist noted the bats teardown rm -rf of BATS_TEST_TMPDIR is redundant (auto-cleaned by bats). Already assessed as informational by the dev-lead fix-bot-comment pass.
  • Secret scan: the run_secret_scanning MCP tool is not available in this run; the gitleaks CI check passed and the diff contains no credential material (test stubs use clearly-fake tokens).
  • No GitHub Actions security smells introduced: no permission changes, no untrusted-input interpolation; the change strictly narrows an automated bypass.

CI status

All required checks green at 30fe2b5: Lint, ShellCheck, bats, unit-tests, CodeQL (actions+python), gitleaks, actionlint, agent-shield, SonarCloud quality gate, and all workflow-governance checks SUCCESS. Two earlier 'review / review' runs show CANCELLED — these are superseded review-workflow runs, not code CI; the latest review runs succeeded. Advisory bots CodeRabbit/Codex/Qodo were rate-limited or billing-blocked (noted, non-blocking; CodeAnt and Gemini did review).


Reviewed automatically by the PR-review agent (single-reviewer mode: fable 5). Reply if you need a human review.

@donpetry-bot
donpetry-bot dismissed their stale review August 31, 2026 03:39

Superseded by automated re-review at 30fe2b5.

donpetry-bot
donpetry-bot previously approved these changes Aug 31, 2026

@donpetry-bot donpetry-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.

Automated review — APPROVED ✓

Risk: MEDIUM
Reviewed commit: 30fe2b5a7d738bee5f3c1997291c586d2793d7aa
Review mode: triage-approved (single reviewer)

Summary

Splits the overloaded force flag into FORCE_REVIEW (human @mention break-glass, unchanged — bypasses all gates, reachable only via repository_dispatch) and FORCE_RE_REVIEW (narrow — clears only the same-SHA idempotency no-op). The automated orphan-rescue sweep now maps its force_review input to the narrow flag, so a rescue can no longer bypass the ci-failing/ci-pending/advisory/maintainer gates, and a stale CI snapshot (TOCTOU) is re-validated at execution time. 166 lines of new bats regression coverage drive review-one-pr.sh end-to-end across failing/pending/green CI, orphan-marker, no-flag control, and break-glass paths.

Linked issue analysis

Closes #1590 and substantively addresses it via the issue's preferred "flag split" shape. All three acceptance criteria are met: (1) the orphan-rescue path can no longer bypass CI/advisory gates — AC1 tests assert skip reasons ci-failing and ci-pending under FORCE_RE_REVIEW=true; (2) human @mention behaviour is unchanged — pr-review.yml sets FORCE_REVIEW=true only for repository_dispatch, with regression tests for the #619 break-glass; (3) the snapshot-goes-red scenario is covered — the AC1 failing-CI test asserts no review is submitted and the skip reason is recorded.

Findings

No blocking findings.

  • Correctness: the flag split is minimal and sound. pr-review.yml maps repository_dispatch → FORCE_REVIEW and inputs.force_review → FORCE_RE_REVIEW; review-one-pr.sh honors FORCE_RE_REVIEW only at the same-SHA idempotency no-op (scripts/review-one-pr.sh:507), every other gate keys on FORCE_REVIEW alone. Sweep comments updated consistently.
  • Advisory (codeant-ai, unresolved thread, non-blocking): FORCE_RE_REVIEW bypasses the idempotency marker even when a valid verdict lands between the sweep snapshot and execution, allowing a duplicate review cascade. This race pre-exists this PR (the old FORCE_REVIEW path on the same dispatch had it too) and this change strictly reduces its blast radius — the duplicate run now still respects all quality gates. A future refinement could have the bypass check for an existing decision= verdict at head.
  • Advisory (gemini, unresolved thread, non-blocking): rm -rf in bats teardown is redundant since BATS_TEST_TMPDIR is auto-cleaned. Cosmetic; dev-lead triaged as no-changes.
  • Secret scan: run_secret_scanning MCP tool unavailable in this environment; gitleaks CI check passed and the diff contains no secret-like content.
  • Thin caller stubs untouched; caller-stub-freeze, actionlint, shellcheck, and bats checks all green.

CI status

All checks green: shellcheck, bats, unit-tests, actionlint, CodeQL, gitleaks, SonarCloud, agent-shield, caller-stub-freeze, and all validation gates SUCCESS. Three superseded review/review runs show CANCELLED (replaced by later successful runs); nothing failing or pending.


Reviewed automatically by the PR-review agent (single-reviewer mode: fable 5). Reply if you need a human review.

@donpetry-bot
donpetry-bot dismissed their stale review August 31, 2026 03:44

Superseded by automated re-review at 30fe2b5.

@don-petry
don-petry disabled auto-merge August 31, 2026 03:44
@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead — fix-reviews (applied)

Changes committed and pushed.

@sonarqubecloud

Copy link
Copy Markdown

@don-petry
don-petry disabled auto-merge August 31, 2026 03:49
@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead — fix-bot-comment (no-changes)

Agent reasoning
Issues addressed: 0
No actionable findings — Quality Gate passed with zero new issues, security hotspots, and no specific defects identified.
```
The PR is clear from the bot's perspective. Waiting on the in-progress `bats` and `unit` checks to confirm no regressions.

@don-petry
don-petry enabled auto-merge (squash) August 31, 2026 03:50

@donpetry-bot donpetry-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.

Automated review — APPROVED ✓

Risk: MEDIUM
Reviewed commit: 33da79ab1871591135c0662a27bcc5771ed48385
Review mode: triage-approved (single reviewer)

Summary

Splits the overloaded FORCE_REVIEW flag per issue #1590: repository_dispatch (human @mention) keeps the full break-glass FORCE_REVIEW, while the force_review input (automated orphan-rescue sweep) now maps to a narrow FORCE_RE_REVIEW that bypasses only the same-SHA idempotency no-op and leaves the CI/advisory/maintainer gates armed. Adds a verdict-at-head guard so the narrow flag rescues only genuine orphan markers, plus a 190-line bats regression suite wired into lint.yml.

Linked issue analysis

Closes #1590. All three acceptance criteria are substantively met:

  • Orphan-rescue can no longer bypass quality gates — FORCE_RE_REVIEW is honored only at the idempotency no-op (scripts/review-one-pr.sh); the ci-failing/ci-pending/advisory/maintainer gates key on FORCE_REVIEW alone, so a CI status that went red after the sweep's snapshot (the TOCTOU) re-blocks at execution time.
  • Human @mention retains today's behavior — FORCE_REVIEW is now set true only for repository_dispatch (the mention-listener path) and still bypasses every gate, verified by three "unchanged" tests.
  • Required test exists — AC1 tests assert failing/pending CI + FORCE_RE_REVIEW=true → exit 100 with skip reason ci-failing/ci-pending recorded in the verdict.
    The PR follows the issue's preferred "flag split" shape rather than the fallback re-validation approach.

Findings

No blocking findings.

  • Verified LATEST_MARKER_BODY (used by the new verdict-at-head guard) is defined upstream in the PR-head version of scripts/review-one-pr.sh (line 481, from the #1551 metadata re-arm) — the guard cannot silently no-match on an unset variable.
  • The verdict-at-head guard (AC2b) correctly closes the race codeant-ai flagged in review: a genuine verdict landing at head between the sweep snapshot and execution defers to the normal no-op instead of re-running a completed cascade. Both marker shapes (approve/escalate inline decision=, and fix-request's separate <!-- decision=fix-requested -->) are matched.
  • Both inline review threads (gemini-code-assist: redundant bats teardown; codeant-ai: verdict race) are resolved and were addressed by the fix commit at head.
  • One behavior change to note (intentional, documented in pr-review.yml comments): a human manually running workflow_dispatch with force_review=true now gets only the narrow idempotency bypass; the full break-glass is reachable only via @mention. This matches the issue's stated design.
  • Secret scan: the run_secret_scanning MCP tool is not available in this run; the gitleaks CI check passed (SUCCESS).

CI status

All required checks green at head 33da79a: shellcheck, bats, unit-tests, actionlint, CodeQL (actions + python), SonarCloud quality gate, gitleaks secret scan, AgentShield, caller-stub-freeze, and all workflow-governance checks — SUCCESS. The two CANCELLED review / review runs are superseded runs of this review pipeline itself, not quality gates; SKIPPED entries are conditional ecosystem audits with no matching ecosystem.


Reviewed automatically by the PR-review agent (single-reviewer mode: fable 5). Reply if you need a human review.

@don-petry
don-petry merged commit 35f6f4b into main Aug 31, 2026
66 of 68 checks passed
@don-petry
don-petry deleted the dev-lead/issue-1590-20260831-0305 branch August 31, 2026 03:55
@donpetry-bot

Copy link
Copy Markdown
Contributor

Advisory bots were rate-limited; auto-approval is withheld until they recover. pr-review-sweep will re-review this PR after 2026-08-31T04:56:11Z.

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

Labels

size:L This PR changes 100-499 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

sweep orphan-rescue uses FORCE_REVIEW, bypassing CI/advisory gates — overloaded flag + TOCTOU on the CI snapshot

2 participants