Skip to content

fix(cursor-review): stop all-zero panel retries - #442

Open
christian-byrne wants to merge 1 commit into
mainfrom
fix/cursor-review-account-outage-guard
Open

christian-byrne wants to merge 1 commit into
mainfrom
fix/cursor-review-account-outage-guard

Conversation

@christian-byrne

Copy link
Copy Markdown

Summary

  • treat a panel where every reviewer cell failed as a systemic dependency outage
  • stop the automatic retry path from removing and re-adding cursor-review for that failure shape
  • route the status card to human verification without suggesting another label application
  • document the circuit breaker and preserve retries for partial panel failures

Why

Multiple callers produced 0/6 panels during the same Cursor account outage. The existing errored-round retry treated those as ordinary transient cell failures, so it could spend another label and another full panel while the shared dependency was still unavailable.

This is intentionally fail-closed: partial panel failures remain retryable, but simultaneous failure of every cell requires a human to verify recovery first.

Verification

  • python3 -m unittest discover -s .github/cursor-review/tests -p 'test_*.py' -v — 1,744 tests passed
  • shellcheck -x .github/lint/check-org-repo-literals.sh
  • bash .github/lint/check-org-repo-literals.sh
  • git diff --check

@coderabbitai

coderabbitai Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Team
  • Run ID: 4eefb705-fcd3-4361-a542-dad888195ea6
📥 Commits

Reviewing files that changed from the base of the PR and between 60faaa7 and b4fe0b8.

📒 Files selected for processing: 6
  • .github/cursor-review/README.md
  • .github/cursor-review/auto-approve.py
  • .github/cursor-review/tests/test_auto_approve.py
  • .github/cursor-review/tests/test_auto_retry_errored.py
  • .github/workflows/cursor-review.yml
  • docs/callers/cursor-review.md

Included review availability: This review used your included allowance. 0 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

📝 Walkthrough

The retry policy now detects when no panel reviewers completed. It prevents automatic retries for those rounds and directs them to human review. Tests and documentation describe the updated boundary.

Changes: Zero-completion retry policy

Layer / File(s) Summary
Detect total panel failure and apply policy
.github/cursor-review/auto-approve.py
all_panel_reviewers_failed recognizes reasons where all panel reviewers failed. The next-step guidance directs these cases to human review, and auto_retry_eligible rejects them.
Validate and document the retry boundary
.github/cursor-review/tests/*, .github/cursor-review/README.md, .github/workflows/cursor-review.yml, docs/callers/cursor-review.md
Tests cover total panel failure, partial failure, and mixed reasons. The README, workflow description, and caller documentation state that rounds with zero completed reviewers are not automatically retried.

Suggested reviewers: mattmillerai, huntcsg

Priority: ➖ Normal

Merge Risk: ⚪ Minimal · up to b4fe0

No actionable issue is established for the zero-completion retry change; it is mergeable after normal checks.

Pre-merge checks: Passed 2
Check name Status Explanation
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
✨ Simplify code
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants