fix: surface Codex findings without gating convergence on it#14
Conversation
crq feedback filtered every finding source (reviews, review threads, review comments, issue comments) through RequiredBots, which defaults to coderabbitai[bot] only. So when Codex (chatgpt-codex-connector[bot]) reviewed a PR, its findings were silently dropped and crq could report "converged" while Codex flagged open issues — the README even documented Codex as a default required bot, which the code never actually did. Making Codex a *required* bot would fix extraction but hang crq waiting for Codex to review on repos where it isn't installed. So split the two concerns: - RequiredBots still gates convergence (seeds ReviewedBy) — unchanged, CodeRabbit-only by default, so no new hang risk. - New FeedbackBots is the extraction set: a superset that also includes Codex by default (override via CRQ_FEEDBACK_BOTS). Extraction always unions in RequiredBots so a required bot's findings can never be dropped. Verified against a live PR: crq feedback went from 0 to 7 Codex findings with the fix. Adds regression coverage (Feedback surfaces Codex while keeping it out of the convergence gate; FeedbackBots defaults + override; unionBots dedupe) and corrects the README env table.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (3)
📜 Recent review details🔇 Additional comments (3)
📝 WalkthroughWalkthroughSplits bot configuration into required and feedback sets, updates feedback collection to use the broader extraction set, and adds tests plus README coverage for the new behavior. ChangesFeedback bot config and extraction
Estimated code review effort: 3 (Moderate) | ~25 minutes Sequence Diagram(s)sequenceDiagram
participant Caller
participant Service as Service.Feedback
participant Config as Config
participant GitHub as GitHub API
Caller->>Service: Feedback(pr)
Service->>Config: read RequiredBots, FeedbackBots
Service->>Service: extractBots = union(FeedbackBots, RequiredBots)
Service->>GitHub: list reviews/threads/comments
GitHub-->>Service: results
Service->>Service: filter findings using extractBots
Service->>Service: init ReviewedBy using requiredBots only
Service-->>Caller: report(findings, ReviewedBy)
Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e30a4cb009
ℹ️ 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".
|
@coderabbitai review |
✅ Action performedReview finished.
|
The extra-feedback default listed coderabbitai[bot] alongside Codex, so a crq configured for a different reviewer (custom CRQ_BOT/CRQ_REQUIRED_BOTS) would still surface CodeRabbit findings and keep crq loop returning feedback for a bot it neither fires nor waits for. CodeRabbit already enters FeedbackBots via RequiredBots when it's the configured reviewer, so the extra default is now just Codex. Adds a regression test.
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
@coderabbitai review |
✅ Action performedReview finished.
|
The bug
crq feedbackfiltered every finding source (reviews, review threads, review comments, issue comments) throughRequiredBots, which defaults tocoderabbitai[bot]only. So when Codex (chatgpt-codex-connector[bot]) reviewed a PR, its inline findings were silently dropped —crq feedbackreturned zero findings andcrq loopcould report converged while Codex had open issues on the PR.The README even documented
CRQ_REQUIRED_BOTSas defaulting tocoderabbitai[bot],chatgpt-codex-connector[bot], but the code default was CodeRabbit-only — so Codex was never actually consulted.Why not just add Codex to RequiredBots
RequiredBotsgates convergence:crq loopwaits for every required bot to review the head before it can converge. Adding Codex there would make crq hang forever on the many repos where Codex isn't installed and never posts a review.The fix
Split extraction from the convergence gate:
RequiredBotsstill seedsReviewedByand gates convergence — unchanged, CodeRabbit-only by default, so no new hang risk.FeedbackBots(new) is the extraction set: a superset that also includes Codex by default, overridable viaCRQ_FEEDBACK_BOTS. Extraction always unions inRequiredBots, so a required bot's findings can never be dropped even in a hand-built config.An open Codex finding keeps
findings > 0, socrq loopcorrectly stays unconverged until it's resolved — but convergence, once findings hit zero, only waits on the required bots.Verification
crq feedbackwent from 0 → 7 findings with the fixed binary.Feedbacksurfaces a Codex finding while keeping Codex out ofReviewedBy;FeedbackBotsdefault includes Codex and honors theCRQ_FEEDBACK_BOTSoverride;unionBotsdedupe/order. Full suite +go vetgreen, gofmt clean.CRQ_REQUIRED_BOTSreal default + newCRQ_FEEDBACK_BOTSrow).Summary by CodeRabbit