Repository navigation
fix(combos): peek the round-robin ring in the combo's sibling check - #7230
vadymhimself wants to merge 1 commit into
Conversation
The combo layer asks the generic OAuth rotator only whether a healthy sibling exists; it never dispatches to the account the rotator names. Under pool.kernel round-robin the rotator committed that pick, advancing the ring and making it sticky to an account no request was sent to. Add a `commit` flag to rotateGenericOAuthAccountOn429 (default true). The combo passes false: the failed account is still cooled, but the ring is only peeked. Co-Authored-By: Claude Code <noreply@anthropic.com>
|
⏳ DRAFT
What to do
Review readiness checklist
✅ 4/4 boxes ticked. This pull request was already a draft. Its draft status will be preserved after every issue above is resolved. |
|
@coderabbitai full review |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
✅ Action performedFull review finished. |
|
Being carried into #7236 with your authorship preserved; this PR will be closed when the bundle lands. |
Summary
core-combo.tssibling check): withpool.kernelon and the generic OAuthround-robinstrategy, a combo-level 429 after the account budget was spent calledrotateGenericOAuthAccountOn429only to test whether a healthy sibling exists. That rotator commitspickRoundRobinAccount, so the pool cursor moved to an account no request was sent to.rotateGenericOAuthAccountOn429/rotateGenericOAuthAccountOnRefusaltakecommit = true. The combo passesfalse, so the spent account is still cooled, but the successor is only peeked via the existingpeekRoundRobinAccount.Follow-up to the batch-2 bundle (#7224/#7225), which landed at a head from before this review finding was fixed on the source PR. The same commit was offered on the bundle.
Verification
bun test tests/oauth/generic-oauth-combo-account-cooldown.test.tsgives 2 pass, 1 fail. After a 4-of-5-spent request the ring stays on account 5, which was never sent.bun x tsc --noEmit: clean.tests/test-layout.test.tsandtests/ci-workflows/file-size-ratchet.test.ts: pass.Checklist
🤖 Generated with Claude Code
Review readiness checklist
This PR stays in draft until every box below is ticked. Tick all four boxes once the requirements are met:
Required local validation passed; commands, results, and any full-suite exception are documented.
I pushed my PR to a recent dev commit (at most 10 behind; a maintainer may still ask for the exact tip before merge).
I resolved all correct Codex and CodeRabbit findings.
My PR is ready for review.
Summary by CodeRabbit