From 92bd2ee869a5a52d994692d6e4ba6d84f864746d Mon Sep 17 00:00:00 2001 From: zerob13 Date: Sun, 15 Feb 2026 09:42:58 +0800 Subject: [PATCH 1/2] fix(settings): disable auto-fallback in default model selection Remove automatic model fallback in DefaultModelSettingsSection to prevent unintended model changes when providers load late. Models now only change on explicit user selection. --- .../common/DefaultModelSettingsSection.vue | 26 ++----------------- 1 file changed, 2 insertions(+), 24 deletions(-) diff --git a/src/renderer/settings/components/common/DefaultModelSettingsSection.vue b/src/renderer/settings/components/common/DefaultModelSettingsSection.vue index 305ea3ac9..474cf10af 100644 --- a/src/renderer/settings/components/common/DefaultModelSettingsSection.vue +++ b/src/renderer/settings/components/common/DefaultModelSettingsSection.vue @@ -163,19 +163,6 @@ const selectBySetting = ( return { providerId: setting.providerId, model: matchedModel } } -const pickFirstEnabledModel = ( - predicate?: (model: RENDERER_MODEL_META, providerId: string) => boolean -): SelectedModel | null => { - for (const providerEntry of modelStore.enabledModels) { - for (const model of providerEntry.models) { - if (!predicate || predicate(model, providerEntry.providerId)) { - return { providerId: providerEntry.providerId, model } - } - } - } - return null -} - const persistModelSetting = async ( key: 'assistantModel' | 'defaultModel' | 'defaultVisionModel', previous: { providerId: string; modelId: string } | undefined, @@ -237,13 +224,10 @@ const syncModelSelections = async (): Promise => { | undefined const chatSelection = - selectBySetting(defaultModelSetting, (_model, providerId) => providerId !== 'acp') || - pickFirstEnabledModel((_model, providerId) => providerId !== 'acp') + selectBySetting(defaultModelSetting, (_model, providerId) => providerId !== 'acp') const assistantSelection = - selectBySetting(assistantModelSetting, (_model, providerId) => providerId !== 'acp') || - chatSelection || - pickFirstEnabledModel((_model, providerId) => providerId !== 'acp') + selectBySetting(assistantModelSetting, (_model, providerId) => providerId !== 'acp') const visionSelection = selectBySetting( @@ -252,12 +236,6 @@ const syncModelSelections = async (): Promise => { providerId !== 'acp' && Boolean(model.vision) && (model.type === ModelType.Chat || model.type === ModelType.ImageGeneration) - ) || - pickFirstEnabledModel( - (model, providerId) => - providerId !== 'acp' && - Boolean(model.vision) && - (model.type === ModelType.Chat || model.type === ModelType.ImageGeneration) ) selectedChatModel.value = chatSelection From 2b5adcdf213386c2d25a37b35bb97d46cebbc4ee Mon Sep 17 00:00:00 2001 From: zerob13 Date: Sun, 15 Feb 2026 09:59:36 +0800 Subject: [PATCH 2/2] fix: format --- .../common/DefaultModelSettingsSection.vue | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/renderer/settings/components/common/DefaultModelSettingsSection.vue b/src/renderer/settings/components/common/DefaultModelSettingsSection.vue index 474cf10af..cef7bd378 100644 --- a/src/renderer/settings/components/common/DefaultModelSettingsSection.vue +++ b/src/renderer/settings/components/common/DefaultModelSettingsSection.vue @@ -223,20 +223,23 @@ const syncModelSelections = async (): Promise => { | { providerId: string; modelId: string } | undefined - const chatSelection = - selectBySetting(defaultModelSetting, (_model, providerId) => providerId !== 'acp') + const chatSelection = selectBySetting( + defaultModelSetting, + (_model, providerId) => providerId !== 'acp' + ) - const assistantSelection = - selectBySetting(assistantModelSetting, (_model, providerId) => providerId !== 'acp') + const assistantSelection = selectBySetting( + assistantModelSetting, + (_model, providerId) => providerId !== 'acp' + ) - const visionSelection = - selectBySetting( - defaultVisionModelSetting, - (model, providerId) => - providerId !== 'acp' && - Boolean(model.vision) && - (model.type === ModelType.Chat || model.type === ModelType.ImageGeneration) - ) + const visionSelection = selectBySetting( + defaultVisionModelSetting, + (model, providerId) => + providerId !== 'acp' && + Boolean(model.vision) && + (model.type === ModelType.Chat || model.type === ModelType.ImageGeneration) + ) selectedChatModel.value = chatSelection selectedAssistantModel.value = assistantSelection