From d8fe61131c3baeb59d039503430933b31989e475 Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Tue, 24 Mar 2026 16:22:03 +0900 Subject: [PATCH] fix(agents): preserve uiSelectedModel when agent override has no model MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three agent builder files used falsy checks that incorrectly nullified uiSelectedModel when override objects existed but had no model set: - sisyphus-agent.ts: `?.model ?` → `?.model !== undefined ?` - atlas-agent.ts: `?.model ?` → `?.model !== undefined ?` - general-agents.ts: `!override?.model` → `override?.model === undefined` This caused user model selection in web mode to revert to defaults. Fixes #2351 --- src/agents/builtin-agents/atlas-agent.ts | 2 +- src/agents/builtin-agents/general-agents.ts | 2 +- src/agents/builtin-agents/sisyphus-agent.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/agents/builtin-agents/atlas-agent.ts b/src/agents/builtin-agents/atlas-agent.ts index f1658ebc9..bea50480b 100644 --- a/src/agents/builtin-agents/atlas-agent.ts +++ b/src/agents/builtin-agents/atlas-agent.ts @@ -39,7 +39,7 @@ export function maybeCreateAtlasConfig(input: { const atlasRequirement = AGENT_MODEL_REQUIREMENTS["atlas"] const atlasResolution = applyModelResolution({ - uiSelectedModel: orchestratorOverride?.model ? undefined : uiSelectedModel, + uiSelectedModel: orchestratorOverride?.model !== undefined ? undefined : uiSelectedModel, userModel: orchestratorOverride?.model, requirement: atlasRequirement, availableModels, diff --git a/src/agents/builtin-agents/general-agents.ts b/src/agents/builtin-agents/general-agents.ts index 7727cf999..4360f9ec7 100644 --- a/src/agents/builtin-agents/general-agents.ts +++ b/src/agents/builtin-agents/general-agents.ts @@ -69,7 +69,7 @@ export function collectPendingBuiltinAgents(input: { const isPrimaryAgent = isFactory(source) && source.mode === "primary" let resolution = applyModelResolution({ - uiSelectedModel: (isPrimaryAgent && !override?.model) ? uiSelectedModel : undefined, + uiSelectedModel: (isPrimaryAgent && override?.model === undefined) ? uiSelectedModel : undefined, userModel: override?.model, requirement, availableModels, diff --git a/src/agents/builtin-agents/sisyphus-agent.ts b/src/agents/builtin-agents/sisyphus-agent.ts index a28879b7a..d326f9a6a 100644 --- a/src/agents/builtin-agents/sisyphus-agent.ts +++ b/src/agents/builtin-agents/sisyphus-agent.ts @@ -52,7 +52,7 @@ export function maybeCreateSisyphusConfig(input: { if (disabledAgents.includes("sisyphus") || !meetsSisyphusAnyModelRequirement) return undefined let sisyphusResolution = applyModelResolution({ - uiSelectedModel: sisyphusOverride?.model ? undefined : uiSelectedModel, + uiSelectedModel: sisyphusOverride?.model !== undefined ? undefined : uiSelectedModel, userModel: sisyphusOverride?.model, requirement: sisyphusRequirement, availableModels,