diff --git a/src/cli/App.tsx b/src/cli/App.tsx index b294074..043b5a2 100644 --- a/src/cli/App.tsx +++ b/src/cli/App.tsx @@ -3327,6 +3327,7 @@ Plan file path: ${planFilePath}`; ? `${llmConfig.model_endpoint_type}/${llmConfig.model}` : undefined } + currentEnableReasoner={llmConfig?.enable_reasoner} onSelect={handleModelSelect} onCancel={() => setModelSelectorOpen(false)} /> diff --git a/src/cli/components/ModelSelector.tsx b/src/cli/components/ModelSelector.tsx index c6cab4c..467c711 100644 --- a/src/cli/components/ModelSelector.tsx +++ b/src/cli/components/ModelSelector.tsx @@ -16,12 +16,14 @@ type UiModel = { interface ModelSelectorProps { currentModel?: string; + currentEnableReasoner?: boolean; onSelect: (modelId: string) => void; onCancel: () => void; } export function ModelSelector({ currentModel, + currentEnableReasoner, onSelect, onCancel, }: ModelSelectorProps) { @@ -85,7 +87,26 @@ export function ModelSelector({ {visibleModels.map((model, index) => { const isSelected = index === selectedIndex; - const isCurrent = model.handle === currentModel; + + // Check if this model is current by comparing handle and relevant settings + let isCurrent = model.handle === currentModel; + + // For models with the same handle, also check specific configuration settings + if (isCurrent && model.handle?.startsWith("anthropic/")) { + // For Anthropic models, check enable_reasoner setting + const modelEnableReasoner = model.updateArgs?.enable_reasoner; + + // If the model explicitly sets enable_reasoner, check if it matches current settings + if (modelEnableReasoner !== undefined) { + // Model has explicit enable_reasoner setting, compare with current + isCurrent = + isCurrent && modelEnableReasoner === currentEnableReasoner; + } else { + // If model doesn't explicitly set enable_reasoner, it defaults to enabled (or undefined) + // It's current if currentEnableReasoner is not explicitly false + isCurrent = isCurrent && currentEnableReasoner !== false; + } + } return (