VSCode extension reasoning effort dropdown shows all levels instead of model-supported ones

Resolved 💬 0 comments Opened May 27, 2026 by trim21 Closed May 27, 2026

Problem

When using a custom model provider (configured via config.toml profile with model_provider and model), the thinking level / reasoning effort dropdown in the VSCode extension shows all hardcoded levels (minimal, low, medium, high, xhigh) instead of only the levels supported by the current model.

Root Cause

In the VSCode extension webview code (model-queries-wtBDUqr7.js), there is a hardcoded fallback array:

var h = ["minimal", "low", "medium", "high", "xhigh"]

The reasoning effort lookup function (Jp in composer-Cr2WXS3y.js) searches for the current model in the model/list response:

function Jp(e, t) {
  let n = e?.find(e => e.model === t);
  return n == null
    ? gr.map(e => ({description: "", reasoningEffort: e}))  // fallback: all 5 levels
    : n.supportedReasoningEfforts;  // correct: server-returned levels
}

When the model is not found in the list, it falls back to the hardcoded array instead of the model-specific supportedReasoningEfforts.

Why It Fails for Custom Providers

In use-model-settings-DFF1CncJ.js, when no model is explicitly selected in the VSCode UI, the default model slug is hardcoded to gpt-5.5:

let r = e ? B(n?.models, e) : n?.defaultModel ?? B(n?.models, "gpt-5.5");

When using a custom provider that does not have a gpt-5.5 model, the lookup always fails, causing the dropdown to fall back to the hardcoded 5 levels.

The model is configured via config.toml profile:

[profiles.custom]
model = "my-custom-model"
model_provider = "my-provider"

The catalog JSON correctly defines only 3 levels:

"supported_reasoning_levels": [
  {"effort": "low", "description": "Fast responses with lighter reasoning"},
  {"effort": "medium", "description": "Balances speed and reasoning depth"},
  {"effort": "high", "description": "Greater reasoning depth for complex problems"}
]

But the extension ignores this because the model lookup fails before it can be used.

Expected Behavior

The reasoning effort dropdown should:

  1. Use the current model from the app-server config/thread state (not a hardcoded gpt-5.5 default) to look up supported levels
  2. Fall back to a reasonable subset (e.g. low/medium/high) rather than showing all possible levels including minimal and xhigh when the model cannot be resolved

Environment

  • VSCode extension: openai.chatgpt v26.519.32039
  • Model provider: custom (OpenAI-compatible API)
  • Config: profile-based (model_catalog_json with supported_reasoning_levels set to low/medium/high)

View original on GitHub ↗