Skip to content

fix(combo): resolve effort variants via base model capabilities - #11034

Merged
diegosouzapw merged 1 commit into
diegosouzapw:release/v3.8.50from
excessivechaos:fix/command-code-effort-capabilities
Aug 21, 2026
Merged

diegosouzapw merged 1 commit into
diegosouzapw:release/v3.8.50from
excessivechaos:fix/command-code-effort-capabilities

Conversation

@excessivechaos

Copy link
Copy Markdown
Contributor

Problem

Effort-suffixed model variants (e.g. command-code/deepseek/deepseek-v4-flash-max, command-code/meta/muse-spark-1.2-contributor-xhigh) are synthesized in the catalog from the base model's supportedThinkingEfforts — they have no registry row, synced row, or static spec of their own. getResolvedModelCapabilities resolved them to NULL tool/vision/context capabilities.

Consequence: a tool-bearing combo request (OMP always sends tools) treats those targets as incompatible, silently reorders them behind models with confirmed capabilities, and the declared priority order is defeated. Live observation: orchestrator dispatched opencode-go/mimo-v2.5-max (stored 4th) at position 2 while command-code/deepseek/deepseek-v4-flash-max (stored 2nd) sat unused — verified via combo decision traces.

Fix

In getResolvedModelCapabilities, when every direct source (static spec, registry row, synced capability) misses for a provider/model, strip a known effort suffix (none/minimal/low/medium/high/xhigh/max) and resolve the variant's capabilities from its base model. The variant keeps its own model id in the result; only the capability sources fall back to the base.

Verification

  • New regression test seeds model_capabilities for the base models and asserts the -max/-xhigh variants inherit tool/vision/context/reasoning from the base.
  • Focused suites: 65 passed (command-code registry vision, executor, combo-builder effort variants, deepseek thinking efforts).
  • Changed-file ESLint + git diff --check clean.

Note: tests/unit/models-catalog-combo-metadata.test.ts "single-target combo respects registry reasoning overrides before specs" fails on the pristine base too (pre-existing base drift, unrelated to this change).

@diegosouzapw
diegosouzapw merged commit 00dfdad into diegosouzapw:release/v3.8.50 Aug 21, 2026
7 of 16 checks passed
Sa3id23 pushed a commit to Sa3id23/OmniRoute that referenced this pull request Aug 21, 2026
…osouzapw#11034)

⭐5 — Variantes de modelo com sufixo de effort (ex: model-max/model-xhigh) são sintetizadas no catálogo a partir de supportedThinkingEfforts do modelo base, sem linha própria no registry — getResolvedModelCapabilities resolvia NULL para tool/vision/context, o que fazia combos com tools reordenar silenciosamente essas variantes para trás. Fix: quando todas as fontes diretas falham, resolve as capacidades a partir do modelo base após strip do sufixo. TDD, 65 testes focados verdes.
AndrianBalanescu pushed a commit to AndrianBalanescu/OmniRoute that referenced this pull request Aug 21, 2026
…osouzapw#11034)

⭐5 — Variantes de modelo com sufixo de effort (ex: model-max/model-xhigh) são sintetizadas no catálogo a partir de supportedThinkingEfforts do modelo base, sem linha própria no registry — getResolvedModelCapabilities resolvia NULL para tool/vision/context, o que fazia combos com tools reordenar silenciosamente essas variantes para trás. Fix: quando todas as fontes diretas falham, resolve as capacidades a partir do modelo base após strip do sufixo. TDD, 65 testes focados verdes.
diegosouzapw added a commit that referenced this pull request Aug 21, 2026
…provider docs, orphaned suppressions (#11038)

⭐5 — Drain de base-reds v3.8.50 (#9985): corrige build-break do #10939 (import fantasma @/lib/db/connections → reroteado por getProviderConnectionById real), headers Anthropic no fallback GLM, fallthrough do reject de listing CC-compatible, no-auth leak no auto-combo, retry de mesmo-account nos combo live tests, pin onnxruntime-node ~1.24.3; + alignments de teste + gates (env-doc, docs-counts 347→348, openapi floor, i18n vi/pt-BR).

Reconciliado com o tip: 5 conflitos de contagem gerada (SVGs + PROVIDER_REFERENCE — HEAD já em 348, branch em 347 stale) resolvidos ficando com o HEAD. typecheck limpo, gates verdes, 5/5 testes focados (#10939 regressão + utilização), lint limpo nos tocados.

Também rebaselined neste turno via push direto ao tip: config/quality/file-size-baseline.json modelCapabilities.ts 1016→1072 (drift de PRs ja mergeadas, ex: #11034), com changelog fragment — tip estava vermelho nesse gate e travava esta PR.
diegosouzapw added a commit that referenced this pull request Aug 22, 2026
…8n parity, eslint gate (#9985)

Discriminated against the pure base tip (all three reproduced without any PR diff): (1) getTokenLimit test aligned to the contract changes of #8228/#11034 with the bluesminds 200k pin kept as the original guard; (2) Vietnamese translations completed for harImport*/omni-webhooks (upstream already carried equivalent translations — conflict resolved to base); (3) eslint gate fixed by typing the dynamic core imports in capture-critical-db-state.test.ts (no-explicit-any). 41/41 tests green, typecheck clean, eslint exit 0.
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
…osouzapw#11034)

⭐5 — Variantes de modelo com sufixo de effort (ex: model-max/model-xhigh) são sintetizadas no catálogo a partir de supportedThinkingEfforts do modelo base, sem linha própria no registry — getResolvedModelCapabilities resolvia NULL para tool/vision/context, o que fazia combos com tools reordenar silenciosamente essas variantes para trás. Fix: quando todas as fontes diretas falham, resolve as capacidades a partir do modelo base após strip do sufixo. TDD, 65 testes focados verdes.
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
…provider docs, orphaned suppressions (diegosouzapw#11038)

⭐5 — Drain de base-reds v3.8.50 (diegosouzapw#9985): corrige build-break do diegosouzapw#10939 (import fantasma @/lib/db/connections → reroteado por getProviderConnectionById real), headers Anthropic no fallback GLM, fallthrough do reject de listing CC-compatible, no-auth leak no auto-combo, retry de mesmo-account nos combo live tests, pin onnxruntime-node ~1.24.3; + alignments de teste + gates (env-doc, docs-counts 347→348, openapi floor, i18n vi/pt-BR).

Reconciliado com o tip: 5 conflitos de contagem gerada (SVGs + PROVIDER_REFERENCE — HEAD já em 348, branch em 347 stale) resolvidos ficando com o HEAD. typecheck limpo, gates verdes, 5/5 testes focados (diegosouzapw#10939 regressão + utilização), lint limpo nos tocados.

Também rebaselined neste turno via push direto ao tip: config/quality/file-size-baseline.json modelCapabilities.ts 1016→1072 (drift de PRs ja mergeadas, ex: diegosouzapw#11034), com changelog fragment — tip estava vermelho nesse gate e travava esta PR.
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
…8n parity, eslint gate (diegosouzapw#9985)

Discriminated against the pure base tip (all three reproduced without any PR diff): (1) getTokenLimit test aligned to the contract changes of diegosouzapw#8228/diegosouzapw#11034 with the bluesminds 200k pin kept as the original guard; (2) Vietnamese translations completed for harImport*/omni-webhooks (upstream already carried equivalent translations — conflict resolved to base); (3) eslint gate fixed by typing the dynamic core imports in capture-critical-db-state.test.ts (no-explicit-any). 41/41 tests green, typecheck clean, eslint exit 0.
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.

2 participants