From fe40ff94f40a142b8e7713e747c36262460b162f Mon Sep 17 00:00:00 2001 From: Gourav Kumar Dhiman Date: Fri, 30 Oct 2026 14:20:08 +0530 Subject: [PATCH] fix(web): the fallback model has its own reasoning selector Settings > New threads showed a reasoning control for the default model but not for the fallback model, so fallback threads always started at the provider's default effort. The fallback row now offers the same control and saves the choice with the fallback selection. Co-Authored-By: Claude Sonnet 5.5 --- .../settings/ProjectDefaultsSettings.tsx | 79 ++++++++++++------- 1 file changed, 51 insertions(+), 28 deletions(-) diff --git a/apps/web/src/components/settings/ProjectDefaultsSettings.tsx b/apps/web/src/components/settings/ProjectDefaultsSettings.tsx index 43c4419962a02..cdd107b150da1 100644 --- a/apps/web/src/components/settings/ProjectDefaultsSettings.tsx +++ b/apps/web/src/components/settings/ProjectDefaultsSettings.tsx @@ -79,6 +79,7 @@ export function ProjectDefaultsSettings({ category }: { category: ProjectSetting const mixedModel = useScopedSettingsMixed(["defaultModelSelection"]); const mixedFallback = useScopedSettingsMixed(["fallbackModelSelection"]); const fallbackSelection = settings.fallbackModelSelection ?? selection; + const fallbackEntry = entries.find((entry) => entry.instanceId === fallbackSelection?.instanceId); const fallbackModelOptions = getCustomModelOptionsByInstance( settings, providers, @@ -242,34 +243,56 @@ export function ProjectDefaultsSettings({ category }: { category: ProjectSetting } control={ fallbackSelection ? ( - { - const reason = modelDisabledReason(instanceId, model); - if (reason) { - toastManager.add({ - type: "error", - title: "Fallback model not saved", - description: reason, - }); - return; - } - updateSettings({ fallbackModelSelection: createModelSelection(instanceId, model) }); - }} - /> +
+ { + const reason = modelDisabledReason(instanceId, model); + if (reason) { + toastManager.add({ + type: "error", + title: "Fallback model not saved", + description: reason, + }); + return; + } + updateSettings({ fallbackModelSelection: createModelSelection(instanceId, model) }); + }} + /> + {fallbackEntry && !mixedFallback && settings.fallbackModelSelection !== null ? ( + + updateSettings({ + fallbackModelSelection: createModelSelection( + fallbackSelection.instanceId, + fallbackSelection.model, + options, + ), + }) + } + /> + ) : null} +
) : ( No providers available )