fix(vision): honor Custom Models vision flag on advertised aliases - #12974
Merged
diegosouzapw merged 2 commits intoSep 11, 2026
Merged
diegosouzapw merged 2 commits into
diegosouzapw merged 2 commits into
Conversation
HouMinXi
added a commit
to HouMinXi/OmniRoute
that referenced
this pull request
Sep 7, 2026
…pw#12974 Signed-off-by: Minxi Hou <houminxi@gmail.com>
HouMinXi
added a commit
to HouMinXi/OmniRoute
that referenced
this pull request
Sep 10, 2026
…pw#12974 Signed-off-by: Minxi Hou <houminxi@gmail.com>
HouMinXi
force-pushed
the
fix/custom-vision-bridge-12758
branch
from
September 10, 2026 11:22
e5c6e70 to
d422745
Compare
HouMinXi
added a commit
to HouMinXi/OmniRoute
that referenced
this pull request
Sep 10, 2026
…pw#12974 Signed-off-by: Minxi Hou <houminxi@gmail.com>
HouMinXi
force-pushed
the
fix/custom-vision-bridge-12758
branch
from
September 10, 2026 13:23
d422745 to
bc1e301
Compare
Vision Bridge swapped image requests for path-shaped custom models to glm/glm-4.6v when the client sent the advertised alias or the bare path. parseModel splits on the first slash; the override lives under the openai-compatible connection id. Match all three id forms without changing parseModel. Fixes diegosouzapw#12758 Signed-off-by: Minxi Hou <houminxi@gmail.com>
…pw#12974 Signed-off-by: Minxi Hou <houminxi@gmail.com>
HouMinXi
force-pushed
the
fix/custom-vision-bridge-12758
branch
from
September 11, 2026 08:33
bc1e301 to
f910a78
Compare
Contributor
Author
|
CI red on this PR matches current Measured on tip
Unique diff does not touch those files. Contributor-only; not merging. |
diegosouzapw
merged commit Sep 11, 2026
73dee8d
into
diegosouzapw:release/v3.8.51
8 of 16 checks passed
Githab-capibara
added a commit
to Githab-capibara/OmniRoute
that referenced
this pull request
Sep 17, 2026
…iegosouzapw#12974) `parseModel` splitting on the first `/` is the trap, and recovering the custom row for all three id forms without changing `parseModel` is the right way around it — that function has too many callers to widen. Lifting the lookup into `customVisionOverride.ts` because `models.ts` is frozen is the correct response to the cap, not a workaround. --- Validated in one consolidated worktree cut from `release/v3.8.51`, boarded with the other 19 PRs of this batch. Two in-batch conflicts, both additive and resolved by keeping each side: the `ENVIRONMENT.md` table (diegosouzapw#13035 + diegosouzapw#13011) and the `chatHelpers.ts` import block (diegosouzapw#12975 on the tip + diegosouzapw#13017). - `typecheck:core` clean; `check:dashboard-typecheck` OK (206 pre-existing, within baseline); `check:changelog-integrity` OK; `check:docs-counts` migrations ✓ - complexity 2816 / baseline 3218 and cognitive-complexity 1271 / baseline 1437 — both under baseline - 531 of 532 focused assertions green across the batch's 46 test files - `check-file-size` rebaselined for the batch's real growth (annotation `_rebaseline_2026_09_11_mergebatch_v3851_houminxi`, landed on diegosouzapw#13038), attributed per PR The single red is **not this batch**: `tests/unit/combo/quota-weighted-strategy.test.ts` → "A/B isolation: 7 hard-empty + 2 at 0.5% + 1 at 40%, floor=1" asserts an order between two connections of identical weight and flakes on the pure tip too — 2 failures in 4 runs at `origin/release/v3.8.51` with nothing from this batch applied.⚠️ base-red inherited: diegosouzapw#12732 — `Docs Gates`, `Merge integrity`, `No new ESLint warnings`, `Unit Tests fast-path` and `Fast Quality Gates` reproduce on the pure tip (provider count 356 vs the 358 the modules define, SKILL.md drift, and `open-sse/utils/stream.ts` at 3115 > frozen 3098, untouched here). Thanks @HouMinXi — the live evidence on these (X500 logs, `storage.sqlite` state, real `/v1/models` probes, the 36-minute outage write-up) is what let a 20-PR batch be reviewed as a unit.
muhamadgalihsaputra
pushed a commit
to niyatna/NiyatnaRoute
that referenced
this pull request
Sep 27, 2026
…iegosouzapw#12974) `parseModel` splitting on the first `/` is the trap, and recovering the custom row for all three id forms without changing `parseModel` is the right way around it — that function has too many callers to widen. Lifting the lookup into `customVisionOverride.ts` because `models.ts` is frozen is the correct response to the cap, not a workaround. --- Validated in one consolidated worktree cut from `release/v3.8.51`, boarded with the other 19 PRs of this batch. Two in-batch conflicts, both additive and resolved by keeping each side: the `ENVIRONMENT.md` table (diegosouzapw#13035 + diegosouzapw#13011) and the `chatHelpers.ts` import block (diegosouzapw#12975 on the tip + diegosouzapw#13017). - `typecheck:core` clean; `check:dashboard-typecheck` OK (206 pre-existing, within baseline); `check:changelog-integrity` OK; `check:docs-counts` migrations ✓ - complexity 2816 / baseline 3218 and cognitive-complexity 1271 / baseline 1437 — both under baseline - 531 of 532 focused assertions green across the batch's 46 test files - `check-file-size` rebaselined for the batch's real growth (annotation `_rebaseline_2026_09_11_mergebatch_v3851_houminxi`, landed on diegosouzapw#13038), attributed per PR The single red is **not this batch**: `tests/unit/combo/quota-weighted-strategy.test.ts` → "A/B isolation: 7 hard-empty + 2 at 0.5% + 1 at 40%, floor=1" asserts an order between two connections of identical weight and flakes on the pure tip too — 2 failures in 4 runs at `origin/release/v3.8.51` with nothing from this batch applied.⚠️ base-red inherited: diegosouzapw#12732 — `Docs Gates`, `Merge integrity`, `No new ESLint warnings`, `Unit Tests fast-path` and `Fast Quality Gates` reproduce on the pure tip (provider count 356 vs the 358 the modules define, SKILL.md drift, and `open-sse/utils/stream.ts` at 3115 > frozen 3098, untouched here). Thanks @HouMinXi — the live evidence on these (X500 logs, `storage.sqlite` state, real `/v1/models` probes, the 36-minute outage write-up) is what let a 20-PR batch be reviewed as a unit.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bug Description
A Custom Models row with "Vision capable" checked still had its image
requests swapped to
glm/glm-4.6vwhen the client sent the advertisedalias (
vllm/orcarouter/...) or the bare path-shaped id. Only theinternal
providerId/modelPathform skipped the bridge. Text chatalready resolved the same custom row; Vision Bridge used a narrower
lookup.
parseModelsplits on the first/, soorcarouter/Qwen...becomesprovider
orcarouter. The override lives under the openai-compatibleconnection id. The matcher now recovers that row for all three id forms
without changing
parseModel.Fixes #12758
Changes
customVisionOverride.ts(frozenmodels.tscannot grow).connectionId + path idagainst advertised alias, barepath, and full internal id.
not a coin flip.
Test plan
tests/unit/vision-bridge-custom-path-id-12758.test.ts: three idforms skip the glm swap; explicit
supportsVision: falsestill winson the advertised alias.
api-models-hide-paid-6328,custom-vision-override-combo-routing-9195.