diff --git a/packages/app/src/composer/agent-controls/utils.test.ts b/packages/app/src/composer/agent-controls/utils.test.ts index 5b566fdeb4..993e21f0c9 100644 --- a/packages/app/src/composer/agent-controls/utils.test.ts +++ b/packages/app/src/composer/agent-controls/utils.test.ts @@ -186,4 +186,30 @@ describe("resolveAgentModelSelection", () => { expect(selection.selectedThinkingId).toBe("low"); expect(selection.displayThinking).toBe("Low"); }); + + it("shows the agent's own model when the catalog does not list it", () => { + const selection = resolveAgentModelSelection({ + models: [ + { + id: "gpt-6-sol", + provider: "codex", + label: "GPT-6-Sol", + isDefault: true, + thinkingOptions: [ + { id: "medium", label: "medium" }, + { id: "max", label: "max" }, + ], + defaultThinkingOptionId: "medium", + }, + ], + runtimeModelId: "gpt-6.1-sol", + configuredModelId: "gpt-6.1-sol", + explicitThinkingOptionId: "max", + }); + + expect(selection.selectedModel).toBeNull(); + expect(selection.activeModelId).toBe("gpt-6.1-sol"); + expect(selection.displayModel).toBe("gpt-6.1-sol"); + expect(selection.displayThinking).toBe("Max"); + }); }); diff --git a/packages/app/src/composer/agent-controls/utils.ts b/packages/app/src/composer/agent-controls/utils.ts index b28b693365..56f9bcd49f 100644 --- a/packages/app/src/composer/agent-controls/utils.ts +++ b/packages/app/src/composer/agent-controls/utils.ts @@ -79,10 +79,10 @@ function pickSelectedModel( preferredModelId: string | null, fallbackModel: AgentModelDefinition | null, ): AgentModelDefinition | null { - if (!models || !preferredModelId) { + if (!preferredModelId) { return fallbackModel; } - return findModelById(models, preferredModelId) ?? fallbackModel; + return findModelById(models, preferredModelId); } function resolveThinkingId( @@ -164,7 +164,7 @@ export function resolveAgentModelSelection(input: { const thinkingOptions = selectedModel?.thinkingOptions ?? null; const resolvedThinkingId = resolveThinkingId(explicitThinkingOptionId, selectedModel); const effectiveThinking = resolveEffectiveThinking(thinkingOptions, resolvedThinkingId); - const selectedThinkingId = effectiveThinking?.id ?? null; + const selectedThinkingId = effectiveThinking?.id ?? resolvedThinkingId; const displayThinking = resolveThinkingDisplay( effectiveThinking, selectedThinkingId,