Skip to content

fix(review): ignore wrapped rejection for replay - #1245

Draft
seonghobae wants to merge 1 commit into
fix-review-dns-replay-boundaryfrom
fix-review-wrapped-rejection-replay
Draft

seonghobae wants to merge 1 commit into
fix-review-dns-replay-boundaryfrom
fix-review-wrapped-rejection-replay

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

Issue #1106 replay boundary

A review-free passthrough completion still advanced to a second provider when its outer transport exception carried an older HTTP model_not_found or 413 error as __cause__. A rejection inside an exception chain does not prove that the current send was rejected.

For review-free requests, only direct request-size/provider-refusal evidence can authorize the existing documented failover. The ordinary virtual-route chain behavior is unchanged. A wrapped rejection with an unknown current send outcome returns typed nonretryable 502 provider_outcome_unknown. Direct provider model_not_found, ordinary temporary DNS fallback, and direct local-slot admission controls remain covered.

Exact evidence

  • Parent fix(review): stop replay after uncertain DNS failure #1244: e5481c58abfa0de0fa6ffe487b63382facc1bc9a.

  • RED at parent: test_free_review_wrapped_rejection_does_not_authorize_replay[404/413] both failed; synthetic first transport error returned a fallback response after two mocked provider calls.

  • GREEN at this head: those two cases stop after one mocked provider call with typed nonretryable 502. Targeted direct-rejection, ordinary-DNS, prior DNS and local-slot controls: 9 passed.

  • Bounded local run from this worktree: /Users/seonghobae/orca/workspaces/contextual-orchestrator/fix-review-gateway-own-free-pool-admission-and-r/.venv/bin/python -m pytest -q tests/test_passthrough_provider_failover.py tests/test_provider_error_taxonomy.py tests/test_rate_limit_aware_admission.py → 186 passed, one inherited pytest config warning, exit 0. git diff --check passed.

  • Local composition with fix(review): reject empty text batch before submission #1243@89b7beafbde9a6952af1861e719e99daf97fa56d: conflict-free git merge-tree tree 9558cc9ada7d2d2d04f1b463397f73ce426df8d0, matching local probe HEAD 6732894a3de14a364c4323fda693c25130fdace2. From that probe, /Users/seonghobae/orca/workspaces/contextual-orchestrator/fix-review-gateway-own-free-pool-admission-and-r/.venv/bin/python -m pytest -q tests/test_review_gateway_admission_contract_1106.py tests/test_passthrough_provider_failover.py → 162 passed, one inherited config warning, exit 0. This does not establish a PR-head hosted gate.

Mocked transport counts do not establish wire delivery. This Draft is a child of #1244; neither parent head moved. Required hosted jobs, independent review and issue #1106's released allocation/consumer gates remain open. HOLD; no merge or deploy.

@coderabbitai

coderabbitai Bot commented Sep 24, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

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.

❤️ Share

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

This branch has not been deployed

No deployments
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.

1 participant