fix(combo): prefer known context capacity over unknown - #6088
diegosouzapw merged 4 commits into
Conversation
…ring sanitization (diegosouzapw#6048) Port the release/v3.8.44 fix to main so the code-scanning alert closes on the default branch. Parse the URL and assert on the exact hostname instead of a substring match — `includes("www.kimi.com")` would also accept a hostile host like `www.kimi.com.evil.net` or `evil.net/?x=www.kimi.com` (js/incomplete-url-substring-sanitization).
There was a problem hiding this comment.
Code Review
This pull request refactors the context-aware combo compatibility filter in open-sse/services/combo/comboStructure.ts to better handle targets with unknown context limits. It introduces helper functions to retrieve and evaluate context limits, ensuring that known-compatible targets are preferred over unknown metadata gaps, while falling back to strategy order when no known-compatible targets remain. Additionally, the unit tests in tests/unit/combo-context-window-filter.test.ts have been rewritten to thoroughly cover these new behaviors and edge cases. I have no feedback to provide as there are no review comments.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
…6088) Co-authored-by: diegosouzapw <diegosouza.pw@gmail.com>
f884c40
into
diegosouzapw:release/v3.8.44
…bsorption - fix(models): stop resolveProviderAlias at registered provider ids so oc/ reaches the no-auth opencode provider again (#2901 contract, regressed by #5918's transitive chain; transitivity kept across alias-only hops) - fix(auggie): handle async EPIPE 'error' events on child stdin so a fast-exiting CLI surfaces a sanitized error instead of crashing (both spawn sites); deflakes auggie-executor tests - test: align provider family count 166->167 (Kenari #6104), regenerate translate-path golden on Linux (+kenari), opencode quota scope provider->connection (#6061) - quality(test-masking): add _deletedWithReplacement allowlist support to check-test-masking.mjs (deletion exempt ONLY when the declared replacement test exists in HEAD; 5 new gate unit tests) + reduction allowlist entries for the verified #5958/#6088/#5816 migrations + targetExhaustion-> combo-target-exhaustion replacement (#5976, 21 cases/52 asserts vs 13/37) - quality(file-size): absorb v3.8.44 cycle drift (oauth route 960, providerLimits 998, chat 1662, auth 2426) with justification; #6158 will restore the oauth-route freeze - changelog: bullets for the above + the #6155 cooling-panel build fix
…6088) When a combo filters a target for exceeding a known context limit, prefer remaining known-compatible targets over unknown-metadata ones. Regression guard: combo-context-window-filter.test.ts. Co-authored-by: diegosouzapw <diegosouza.pw@gmail.com>
…bsorption - fix(models): stop resolveProviderAlias at registered provider ids so oc/ reaches the no-auth opencode provider again (diegosouzapw#2901 contract, regressed by diegosouzapw#5918's transitive chain; transitivity kept across alias-only hops) - fix(auggie): handle async EPIPE 'error' events on child stdin so a fast-exiting CLI surfaces a sanitized error instead of crashing (both spawn sites); deflakes auggie-executor tests - test: align provider family count 166->167 (Kenari diegosouzapw#6104), regenerate translate-path golden on Linux (+kenari), opencode quota scope provider->connection (diegosouzapw#6061) - quality(test-masking): add _deletedWithReplacement allowlist support to check-test-masking.mjs (deletion exempt ONLY when the declared replacement test exists in HEAD; 5 new gate unit tests) + reduction allowlist entries for the verified diegosouzapw#5958/diegosouzapw#6088/diegosouzapw#5816 migrations + targetExhaustion-> combo-target-exhaustion replacement (diegosouzapw#5976, 21 cases/52 asserts vs 13/37) - quality(file-size): absorb v3.8.44 cycle drift (oauth route 960, providerLimits 998, chat 1662, auth 2426) with justification; diegosouzapw#6158 will restore the oauth-route freeze - changelog: bullets for the above + the diegosouzapw#6155 cooling-panel build fix
Summary
Tests
node --import tsx/esm --test tests/unit/combo-context-window-filter.test.tsnode --import tsx/esm --test tests/unit/combo-vision-aware-routing.test.tsnode --import tsx/esm --test tests/unit/combo-routing-engine.test.ts(pre-existing unrelated failure:handleComboChat applies fallback compression only after explicit zero-latency opt-in, expected 200 got 500)Notes
This is intentionally separate from provider GLM-5.2 context normalization and quota/lockout fixes.