From 3452fae3f9e69ed96f519d363d6d4c86b3cf6664 Mon Sep 17 00:00:00 2001 From: Jiang Bohan Date: Wed, 20 May 2026 13:34:49 +0800 Subject: [PATCH] fix(agent): preserve unknown thinking_level in picker label Stale persisted values (model swap, CLI catalog shrink) used to render as 'Default' even though the backend would still ship the orphaned token. Fall back to the raw value when no entry matches so the user sees what's actually saved and can clear it. Co-authored-by: multica-agent --- .../views/agents/components/inspector/thinking-picker.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/views/agents/components/inspector/thinking-picker.tsx b/packages/views/agents/components/inspector/thinking-picker.tsx index 8c309d4f9..4a16bf7ba 100644 --- a/packages/views/agents/components/inspector/thinking-picker.tsx +++ b/packages/views/agents/components/inspector/thinking-picker.tsx @@ -44,9 +44,13 @@ export function ThinkingPicker({ const [open, setOpen] = useState(false); const selected = value ? levels.find((l) => l.value === value) : undefined; + // Unknown-but-set value (model swap that dropped the option, CLI upgrade + // that trimmed the catalog): show the raw token so the user can see what + // is actually persisted and clear it, rather than silently labelling it + // "Default" when the backend would still send the stale value. const triggerLabel = selected ? selected.label - : t(($) => $.pickers.thinking_default); + : value || t(($) => $.pickers.thinking_default); const triggerTitle = t(($) => $.pickers.thinking_tooltip, { value: triggerLabel, });