Skip to content

fix(combos): surface effortTiers for thinking-capable models - #8108

Closed
rafaumeu wants to merge 2 commits into
cheaper-inference:mainfrom
rafaumeu:fix/combo-builder-effort-tiers-8072
Closed

rafaumeu wants to merge 2 commits into
cheaper-inference:mainfrom
rafaumeu:fix/combo-builder-effort-tiers-8072

Conversation

@rafaumeu

Copy link
Copy Markdown
Contributor

Closes #8072

Problem

The /models catalog path exposes effort_tiers for thinking-capable models, but the Combo Builder path (buildModelOptions in builderOptions.ts) never surfaced this field. Clients using the combo step UI had no way to show effort selectors.

Fix

  • Add effortTiers?: string[] to ComboBuilderModelOption interface
  • Add effortTiers to addModelOption input type with both create and merge paths
  • Populate effortTiers from CANONICAL_EFFORT_VALUES in all four model loops (synced, builtin, custom, fallback) when resolved.supportsThinking is true

This mirrors exactly what the catalog path (modelMetadataRegistry.ts) already does with effort_tiers.

Testing

  • tests/unit/combo-builder-effort-tiers-8072.test.ts — verifies CANONICAL_EFFORT_VALUES is a valid non-empty array with expected values
  • All existing tests still pass

rafaumeu added 2 commits July 22, 2026 00:51
…heaper-inference#8074)

resolveEmbeddingSource() was always returning dimensions=null for
remote sources, even when the model is well-known in the registry
(e.g. nvidia/nv-embedqa-e5-v5 → 1024, openai/text-embedding-3-small
→ 1536). This caused the EmbeddingResolution.dimensions field to be
unusable for callers that need to pre-allocate vector stores or detect
dimension conflicts without performing an actual embed call.

Fix:
- Import getEmbeddingDimension from embeddingRegistry.
- Call getEmbeddingDimension(model) in both remote branches (explicit
  'remote' source and auto-detected remote).
- Use the resolved dimension in the dimensions field and in the
  signature string so the cache-key includes the actual dim.
- Include dim=N in the reason string when dim is known (regression guard).
- Unknown models gracefully fall back to null (no registry entry).

Tests: all 25 in memory-resolve-dimensions-8074 + memory-embedding-resolve
pass; full memory suite 86/86 green.
…-inference#8072)

The /models catalog already exposes effort_tiers for thinking-capable
models, but the Combo Builder path was missing it entirely. Add
effortTiers to ComboBuilderModelOption, propagate through addModelOption
(both create and merge paths), and populate via CANONICAL_EFFORT_VALUES
in all four model loops (synced, builtin, custom, fallback) when
supportsThinking is resolved true.
@rafaumeu
rafaumeu requested a review from diegosouzapw as a code owner July 22, 2026 10:44
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Caution

The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased.

@diegosouzapw

Copy link
Copy Markdown
Collaborator

Consolidating #8072 on #8165 (Dingding-leo), which surfaces the reasoning-effort variants from each model's supportedThinkingEfforts (the issue's own suggested approach) so <model>-high/-medium/-low actually appear in the picker. This PR populates them from the global CANONICAL_EFFORT_VALUES constant instead, and is based on main. Closing in favor of #8165.

@rafaumeu

Copy link
Copy Markdown
Contributor Author

Closing per maintainer feedback. Favoring #8165 (Dingding-leo) using supportedThinkingEfforts per issue's suggested approach.

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