Repository navigation
feat: implement issue #2046 — dev-lead: unprocessed bot review threads are never retried — review-thread counterpart of #2017 - #2048
Conversation
…s are never retried — review-thread counterpart of #2017
|
ⓘ Qodo reviews are paused because your trial has ended. Ask your workspace admin to add credits to resume reviews. Manage billing |
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 14 minutes. View limit detailsLimit details: You’ve used the included review currently available. Review configuration: ⚙️ Run configuration
📒 Files selected for processing (8)
📝 SummarySummary by CodeRabbit
WalkthroughThe PR adds retries for unresolved, unreplied trusted-bot review threads. It also replaces single-page review-thread queries with paginated enumeration and adds coverage for the retry and enumeration paths. ChangesBot review-thread handling
Priority: ➖ Normal Estimated code review effort: 4 (Complex) | ~45 minutes Change: Feature · Severity of issue fixed: Medium Sequence Diagram(s)sequenceDiagram
participant ScanRepo as scan_repo
participant RetryScan as scan_pr_for_unreplied_bot_threads
participant ThreadFetcher as btr_fetch_pr_threads
participant GitHub as GitHub API
participant Decisions as btr_retry_decisions
participant FixReviews as fix-reviews dispatch
ScanRepo->>RetryScan: scan when earlier retry paths dispatched nothing
RetryScan->>ThreadFetcher: fetch PR review threads
ThreadFetcher->>GitHub: paginate review-thread queries
GitHub-->>ThreadFetcher: thread pages
ThreadFetcher-->>RetryScan: complete thread snapshot
RetryScan->>Decisions: evaluate threads and comments
Decisions-->>RetryScan: eligible thread IDs and attempt
RetryScan->>FixReviews: dispatch after marker claim
|
| Check name | Status | Explanation | Resolution |
|---|---|---|---|
| Docstring Coverage | Docstring coverage is 61.54% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 39 functions across 9 files. | Write docstrings for the functions missing them to satisfy the coverage threshold. |
✅ Passed checks (4 passed)
| Check name | Status | Explanation |
|---|---|---|
| Title check | ✅ Passed | The title clearly identifies the main change: retrying unprocessed bot review threads. It is longer than needed, but it is specific and relevant. |
| Description check | ✅ Passed | The description covers all five required sections: Problem, Risk, Test plan, Rollback, and Monitoring. It omits the conditional Interaction contract section and the Checklist section, although this PR… |
| Linked Issues check | ✅ Passed | [#2046] scripts/lib/bot-thread-retry.sh selects unresolved, non-outdated threads opened by trusted Bot reviewers, excludes threads with an automation reply, applies the grace period and retry limits… |
| Out of Scope Changes check | ✅ Passed | The paginated thread helper, fix-reviews wiring, retry-claim coordination in scripts/lib/bot-comment-retry.sh, workflow test registration, and bats updates support [#2046]. No unrelated change is ev… |
✨ Finishing Touches 💡 1
⚔️ Resolve merge conflicts 💡
- Resolve merge conflict in branch
dev-lead/issue-2046-20261003-1350
- Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
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 @coderabbitai help to get the list of available commands.
Dev-Lead — waiting on PR blockers (intent: review-changes)PR: #2048 |
|
Note @don-petry I reviewed this PR and no code changes were needed, but I can't mark it done yet: required checks |
|
No description provided. |
|
Advisory bots were rate-limited; auto-approval is withheld until they recover. pr-review-sweep will re-review this PR after 2026-10-03T15:08:45Z. |
There was a problem hiding this comment.
Code Review
This pull request implements a mechanism to automatically retry lost "fix-reviews" passes for unreplied trusted-bot review threads, introducing paginated thread fetching and deduplicated retry logic. Feedback on the changes highlights an issue in the integration tests where guarding "grep -c" with "|| echo 0" causes duplicate output on no matches, and recommends using "|| true" instead. Additionally, for security-sensitive login comparisons in "jq" scripts, it is advised to use explicit string slicing instead of regex replacements and to pass variables as arguments rather than using direct string interpolation.
|
Qodo trial-ended notice: acknowledged, no action needed in this PR. |
This comment has been minimized.
This comment has been minimized.
|
SonarCloud Quality Gate passed: informational, no action needed. |
Dev-Lead — fix-reviews (partial)A commit was pushed, but not every requested change was applied. Per requested item:
The unaddressed items above still need work. |
Superseded by automated re-review at
|
There was a problem hiding this comment.
All reported issues were addressed
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
|
Advisory bots were rate-limited; auto-approval is withheld until they recover. pr-review-sweep will re-review this PR after 2026-10-03T15:14:30Z. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b0f4d65215
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Dev-Lead — fix-reviews (partial)A commit was pushed, but not every requested change was applied. Per requested item:
The unaddressed items above still need work. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Superseded by automated re-review at
|
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
…is dispatched (#2046) A dispatched fix-reviews pass enumerates every unresolved thread, the exhausted ones included, so a notice posted alongside it could go stale while its marker suppresses a corrected one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019K6UsD7r25pAcRjJL3G6Kx
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Maintainer note on the cycle-3/3 review at
Generated by Claude Code |
There was a problem hiding this comment.
All reported issues were addressed across 4 files (changes from recent commits).
Reply with feedback, questions, or to request a fix.
View guided diff | Turn on auto-fix | Re-trigger cubic
Resolved — the `needs-human-review` hold was lifted; dev-lead has picked this item up. Click to expand the prior hold notice.dev-lead is withholding action on this item. It is labeled To re-enable automated pickup: remove the |
|
No description provided. |
|
No description provided. |
…ion notice on an aborted dispatch (#2046) - has_dispatch_guard counts ANY matching guard dated inside [now - window, now], not just the first, and ignores future-dated ones. - The follow-on scans only honour guards our own automation posted, so a PR commenter cannot pause retries. - The bot-thread scan posts the exhaustion notice on every pre-dispatch abort path (marker post/read failures, untrusted claim, dispatch failure), keeping it suppressed only after a successful dispatch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019K6UsD7r25pAcRjJL3G6Kx
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
No description provided. |
Resolved — the `dev-lead:hands-off` hold was lifted; dev-lead has picked this item up. Click to expand the prior hold notice.dev-lead is withholding action on this item. It is labeled To re-enable automated pickup: remove the |
|
No description provided. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
No description provided. |
|
|
No description provided. |
|
Acknowledged: this is a Codex usage-limit notice with no review findings; no code change needed. |
|
Acknowledged: this is a Codex usage-limit notice with no review findings; no code change needed. |
|
No description provided. |
|
Acknowledged: this is a Codex usage-limit notice with no review findings; no code change needed. |
|
Acknowledged: this is a Codex usage-limit notice with no review findings; no code change needed. |
|
Acknowledged: this is a Codex usage-limit notice with no review findings; no code change needed. |
|
Acknowledged: CodeRabbit's automated 'Comments resolved and changes approved' reply carries no findings; no action needed. |
|
Acknowledged: the CodeAnt risk summary rates the PR Low Risk and lists no findings; no action needed. |
Dev-Lead — fix-reviews (no-changes)Agent reasoning |
|
No description provided. |



Problem
dev-lead: unprocessed bot review threads are never retried — review-thread counterpart of #2017
From the issue: Bot review threads that dev-lead never processes are never retried. They sit with no reply and no resolution, and under
required_review_thread_resolutionthe PR cannot merge. This is the review-thread counterpart of #2017, whose fix (#2022) covers only undispositioned PR issue comments.Risk
Low — changes automation shell logic under scripts/, covered by shellcheck (--severity=warning) and the bats suite.
Test plan
Tests added/updated:
tests/dev-lead/integration/test_prompt_coverage.sh,tests/dev-lead/unit/test_bot_thread_retry.bats. Verification:bash scripts/dev-lead-lint.sh(shellcheck --severity=warning) ran pre-commit; the bats suite runs in CI.Rollback
Revert this PR. No non-revertible side effects (no tags, migrations, or external state).
Monitoring
This PR's Lint (shellcheck) and bats checks show pass/fail; watch subsequent dev-lead / pr-review runs for behavioral regressions.
Closes #2046