From b7278aece75edd1e44deda096adb7bf3edd2877e Mon Sep 17 00:00:00 2001 From: Hannes Rudolph Date: Fri, 6 Feb 2026 18:20:46 -0700 Subject: [PATCH] fix(settings): default reasoning effort from model definition Models with supportsReasoningEffort as an array (e.g., gpt-5.2) and no requiredReasoningEffort would show a blank dropdown because the default fell to 'disable' which wasn't in the available options. Now uses the model's declared reasoningEffort as the default. --- webview-ui/src/components/settings/ThinkingBudget.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/webview-ui/src/components/settings/ThinkingBudget.tsx b/webview-ui/src/components/settings/ThinkingBudget.tsx index c0c4a79bb2..9f892c15a2 100644 --- a/webview-ui/src/components/settings/ThinkingBudget.tsx +++ b/webview-ui/src/components/settings/ThinkingBudget.tsx @@ -103,7 +103,7 @@ export const ThinkingBudget = ({ apiConfiguration, setApiConfigurationField, mod const modelDefaultReasoningEffort = modelInfo?.reasoningEffort as ReasoningEffortWithMinimal | undefined const defaultReasoningEffort: ReasoningEffortOption = modelInfo?.requiredReasoningEffort ? modelDefaultReasoningEffort || "medium" - : "disable" + : modelDefaultReasoningEffort || "disable" // Current reasoning effort from settings, or fall back to default const storedReasoningEffort = apiConfiguration.reasoningEffort as ReasoningEffortOption | undefined const currentReasoningEffort: ReasoningEffortOption = storedReasoningEffort || defaultReasoningEffort @@ -112,7 +112,7 @@ export const ThinkingBudget = ({ apiConfiguration, setApiConfigurationField, mod useEffect(() => { if (isReasoningEffortSupported && !apiConfiguration.reasoningEffort) { // Only set a default if reasoning is required, otherwise leave as undefined (which maps to "disable") - if (modelInfo?.requiredReasoningEffort && defaultReasoningEffort !== "disable") { + if (defaultReasoningEffort !== "disable") { setApiConfigurationField("reasoningEffort", defaultReasoningEffort as ReasoningEffortWithMinimal, false) } }