Conversation
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Repository: luvs01/opencodex/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 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 |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
✅ Deterministic PR hygiene checks passed. |
…ndling-to-preserve-quota
lidge-jun#5334 folds developer to system for destinations that have not recorded whether they accept the role. Two suites still asserted the forwarded role on an unrecorded fixture: a document-carrying developer turn and the dangling tool_calls barrier placement. Declare foldDeveloperRoleToSystem: false on their destinations, matching the ordering suites, and pin the unrecorded fold on the document path. Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
CI fix pushed (
Both files verified locally against the real adapter (all 9 dangling-toolcalls tests pass; the document-turn assertions produce |
The pre-retry delay check budgets only the backoff, but the body release can consume up to 1s first, so the sidecar deadline can fire during cleanup or mid-sleep. That threw TimeoutError into the shared catch and recorded timeout, laundering the observed 429 this path exists to preserve. Catch the wait: a caller abort still propagates to the shared catch (connect_neutral), while a deadline expiry breaks with the 429 in hand. Also start t0 before the deadline timer so the remaining-time check stays conservative. Co-Authored-By: Epinephrine <luvs01@hanmail.net>
|
Fixed in f024b7c. The release+backoff wait is now wrapped so a sidecar deadline firing during |
|
Fixed in f024b7c — same change as the thread above: a deadline expiry during body release or the backoff sleep now ends the replay loop with the existing 429 response (recorded as 429) rather than throwing into the shared catch as |
|
Closing: superseded by combined PR #614, which carries this PR's deadline-safe quota evidence preservation together with the replay-cache isolation on current dev. Its unrecorded-destination test assertion was adapted to the current oldDeveloperRoleToSystem fixture semantics. Combined tests: 65 pass. |
Motivation
timeoutby ensuring a computed Retry-After delay actually fits the remaining sidecar deadline before sleeping to replay. This preserves quota evidence used by account-pool routing.Description
runWebSearchto reject a replay whendelayexceedsRETRY_AFTER_CEILING_MSor is greater-or-equal to the remaining sidecar lifetime computed fromsettings.timeoutMs - (Date.now() - t0), so the original 429 is returned and recorded.【F:src/web-search/executor.ts†L123-L136】【F:src/web-search/executor.ts†L47-L55】Retry-Afterthat cannot fit the remaining sidecar deadline preserves the 429 and records it as such.【F:tests/web-search/web-search-sidecar-429.test.ts†L82-L92】Testing
npm exec --yes --package bun@1.4.0 -- bun test tests/web-search/web-search-sidecar-429.test.ts, which passed (4 tests).npm exec --yes --package bun@1.4.0 -- bun run typecheck,npm exec --yes --package bun@1.4.0 -- bun run structure:check, andnpm exec --yes --package bun@1.4.0 -- bun run privacy:scan, which all succeeded.npm exec --yes --package bun@1.4.0 -- bun run test; the run completed but exited non-zero with many unrelated environment- and timing-sensitive failures (process-control and network/proxy fixtures); the focused regression and static checks relevant to this change are green.Codex Task