Summary
When a reasoning effort of xhigh is configured (persisted effortLevel in settings, or selected via /model) and the active model does not advertise xhigh in its CAPI capabilities, the CLI silently falls back to the model default (medium) instead of clamping to the model's highest supported level (max). The result is the opposite of intent: asking for maximum reasoning yields one of the lower levels — and it happens silently.
Affected models
CAPI /models advertises a per-model reasoning_effort list. As observed on CLI 1.0.62 (enterprise endpoint):
| model |
advertised efforts |
supports xhigh? |
claude-opus-4.6 |
low, medium, high, max |
❌ (ceiling = max) |
claude-sonnet-4.6 |
low, medium, high, max |
❌ (ceiling = max) |
claude-opus-4.7 |
low, medium, high, xhigh, max |
✅ |
claude-opus-4.8 |
low, medium, high, xhigh, max |
✅ |
Steps to reproduce
- Configure reasoning effort
xhigh (e.g. effortLevel: "xhigh" in settings.json, or via /model).
- Run a request using
claude-opus-4.6 (or claude-sonnet-4.6).
- Inspect the reasoning effort actually applied to the model call.
Actual
The applied reasoning effort is medium (the model default). Verified across a large number of sessions: xhigh-configured requests on claude-opus-4.6 are applied as medium — never xhigh, and never the model's real ceiling max. (The CLI's model-resolution still reflects the configured xhigh; only the effective model call is downgraded, which makes this hard to notice.)
Expected
One of:
- Clamp an unsupported-but-higher request to the model's highest supported level (
xhigh → max), or
- Warn that
xhigh is unsupported for the selected model and report what was used instead.
Silently substituting the default (medium) for an explicit "maximum" request is surprising.
Impact
- Users/automation setting
xhigh for "maximum reasoning" actually get medium on these models.
- Fixed-
xhigh model comparisons (e.g. evals) are invalid for models lacking xhigh — they run at a lower effort than peers, not an equal or higher one.
- The downgrade is silent, so it's easy to ship results under a false assumption.
Open question
Is the fallback-to-default intentional, or should an unsupported level clamp to the nearest supported ceiling? Filing to start that discussion rather than assuming it's a bug.
Environment
- Copilot CLI 1.0.62, Windows, enterprise plan.
Summary
When a reasoning effort of
xhighis configured (persistedeffortLevelin settings, or selected via/model) and the active model does not advertisexhighin its CAPI capabilities, the CLI silently falls back to the model default (medium) instead of clamping to the model's highest supported level (max). The result is the opposite of intent: asking for maximum reasoning yields one of the lower levels — and it happens silently.Affected models
CAPI
/modelsadvertises a per-modelreasoning_effortlist. As observed on CLI 1.0.62 (enterprise endpoint):xhigh?claude-opus-4.6max)claude-sonnet-4.6max)claude-opus-4.7claude-opus-4.8Steps to reproduce
xhigh(e.g.effortLevel: "xhigh"insettings.json, or via/model).claude-opus-4.6(orclaude-sonnet-4.6).Actual
The applied reasoning effort is
medium(the model default). Verified across a large number of sessions:xhigh-configured requests onclaude-opus-4.6are applied asmedium— neverxhigh, and never the model's real ceilingmax. (The CLI's model-resolution still reflects the configuredxhigh; only the effective model call is downgraded, which makes this hard to notice.)Expected
One of:
xhigh→max), orxhighis unsupported for the selected model and report what was used instead.Silently substituting the default (
medium) for an explicit "maximum" request is surprising.Impact
xhighfor "maximum reasoning" actually getmediumon these models.xhighmodel comparisons (e.g. evals) are invalid for models lackingxhigh— they run at a lower effort than peers, not an equal or higher one.Open question
Is the fallback-to-default intentional, or should an unsupported level clamp to the nearest supported ceiling? Filing to start that discussion rather than assuming it's a bug.
Environment