From f97453484fc7f484cfeefcde2df1ee52fac3180b Mon Sep 17 00:00:00 2001 From: Kacper Date: Thu, 5 Feb 2026 23:05:19 +0100 Subject: [PATCH] feat: enhance adaptive thinking model support and update UI components - Added `isAdaptiveThinkingModel` utility to improve model identification logic in the AddFeatureDialog. - Updated the ThinkingLevelSelector to conditionally display information based on available thinking levels. - Enhanced model name formatting in agent-context-parser to include 'GPT-5.3 Codex' for better clarity. These changes improve the user experience by refining model handling and UI feedback related to adaptive thinking capabilities. --- .../views/board-view/dialogs/add-feature-dialog.tsx | 5 ++--- .../views/board-view/shared/thinking-level-selector.tsx | 2 +- apps/ui/src/lib/agent-context-parser.ts | 1 + 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/ui/src/components/views/board-view/dialogs/add-feature-dialog.tsx b/apps/ui/src/components/views/board-view/dialogs/add-feature-dialog.tsx index 2dbf0808..a816204f 100644 --- a/apps/ui/src/components/views/board-view/dialogs/add-feature-dialog.tsx +++ b/apps/ui/src/components/views/board-view/dialogs/add-feature-dialog.tsx @@ -28,7 +28,7 @@ import { cn } from '@/lib/utils'; import { modelSupportsThinking } from '@/lib/utils'; import { useAppStore, ThinkingLevel, FeatureImage, PlanningMode, Feature } from '@/store/app-store'; import type { ReasoningEffort, PhaseModelEntry, AgentModel } from '@automaker/types'; -import { supportsReasoningEffort } from '@automaker/types'; +import { supportsReasoningEffort, isAdaptiveThinkingModel } from '@automaker/types'; import { PrioritySelector, WorkModeSelector, @@ -266,8 +266,7 @@ export function AddFeatureDialog({ const handleModelChange = (entry: PhaseModelEntry) => { // Normalize thinking level when switching between adaptive and non-adaptive models const isNewModelAdaptive = - entry.model === 'claude-opus' || - (typeof entry.model === 'string' && entry.model.includes('opus-4-6')); + typeof entry.model === 'string' && isAdaptiveThinkingModel(entry.model); const currentLevel = entry.thinkingLevel || 'none'; if (isNewModelAdaptive && currentLevel !== 'none' && currentLevel !== 'adaptive') { diff --git a/apps/ui/src/components/views/board-view/shared/thinking-level-selector.tsx b/apps/ui/src/components/views/board-view/shared/thinking-level-selector.tsx index 3e111a31..c74b3e9a 100644 --- a/apps/ui/src/components/views/board-view/shared/thinking-level-selector.tsx +++ b/apps/ui/src/components/views/board-view/shared/thinking-level-selector.tsx @@ -46,7 +46,7 @@ export function ThinkingLevelSelector({ ))}

- {model && getThinkingLevelsForModel(model).includes('adaptive') + {levels.includes('adaptive') ? 'Adaptive thinking lets the model decide how much reasoning to use.' : 'Higher levels give more time to reason through complex problems.'}

diff --git a/apps/ui/src/lib/agent-context-parser.ts b/apps/ui/src/lib/agent-context-parser.ts index d6aa877a..996b397b 100644 --- a/apps/ui/src/lib/agent-context-parser.ts +++ b/apps/ui/src/lib/agent-context-parser.ts @@ -40,6 +40,7 @@ export function formatModelName(model: string): string { if (model.includes('haiku')) return 'Haiku 4.5'; // Codex/GPT models - specific formatting + if (model === 'codex-gpt-5.3-codex') return 'GPT-5.3 Codex'; if (model === 'codex-gpt-5.2-codex') return 'GPT-5.2 Codex'; if (model === 'codex-gpt-5.2') return 'GPT-5.2'; if (model === 'codex-gpt-5.1-codex-max') return 'GPT-5.1 Max';