[WRONG BRANCH] fix: pin combo response child routes to concrete targets to avoid alias shadowing - #94
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Warning Review limit reached
Next review available in: 40 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
Comment |
⏳ DRAFT
What to do
Its title has been prefixed with |
Motivation
routeModelInternalalready had a bypass for concrete targets, but the combo child dispatch path still used the alias-aware publicrouteModel()and thus re-entered alias resolution.Description
routeConcreteModel(config, modelId)insrc/router.tsthat calls the internal resolver withbypassCombos=trueto resolve a concrete provider/model without consulting public combo aliases.routeConcreteModel()insrc/server/responses/core.tsfor combo child checks and when building the child request (canDecryptUnreadableAgentTask,targetRoute, and child-request routing), ensuring child payloads remain pinned to the originally selected physical target.handleResponsescall the concrete resolver for recursive combo child attempts by checkingoptions.comboAttemptso alias-aware routing is disabled for those recursive invocations.tests/server-combo-failover-e2e.test.tsthat verifies a shadowing combo alias cannot redirect a child request away from the selected concrete provider.Testing
bun run typecheck(viaPATH="$PWD/node_modules/.bin:$PATH" bun run typecheck) and it succeeded../node_modules/.bin/bun test tests/server-combo-failover-e2e.test.ts --filter "dispatches a selected concrete target"and it passed.bun run privacy:scanand it passed.bun run test; the changes are localized and the focused combo failover suite passed, but the full-suite run encountered unrelated environment-specific failures/timeouts in this container (these are unrelated to the combo routing change).