From 43b5e63589468cb29a65e460e218fc831f22f4ef Mon Sep 17 00:00:00 2001 From: Pascal Date: Mon, 20 Jul 2026 16:28:24 +0200 Subject: [PATCH] UI: fix Settings/Display tool call content toggle (#25783) * ui: fix Show tool call in progress toggle ignored The showToolCallInProgress setting was disconnected from the render path during the agentic content rework: getDefaultExpanded() returns a hardcoded false for tool call sections and an unconditional effect auto-expands the currently executing tool call regardless of the setting. Drive default expansion of all tool call section types from the setting and remove the now redundant auto-expand effect. Manual toggling still takes precedence over the default in both directions. * ui: rename Show tool call in progress to Always show tool call content The previous name suggested symmetry with Show thought in progress, which only applies while inference is running, but tool call content stays expanded after completion. Rename the label, the settings key and the syncable server key to alwaysShowToolCallContent. The synced parameter never worked under its previous name so no migration is needed. --- .../ChatMessageAgenticContent.svelte | 17 +++-------------- tools/ui/src/lib/constants/settings-keys.ts | 2 +- tools/ui/src/lib/constants/settings-registry.ts | 6 +++--- 3 files changed, 7 insertions(+), 18 deletions(-) diff --git a/tools/ui/src/lib/components/app/chat/ChatMessages/ChatMessageAgenticContent.svelte b/tools/ui/src/lib/components/app/chat/ChatMessages/ChatMessageAgenticContent.svelte index 34c82cd76..751d13756 100644 --- a/tools/ui/src/lib/components/app/chat/ChatMessages/ChatMessageAgenticContent.svelte +++ b/tools/ui/src/lib/components/app/chat/ChatMessages/ChatMessageAgenticContent.svelte @@ -43,6 +43,7 @@ const renderThinkingAsMarkdown = $derived(config().renderThinkingAsMarkdown as boolean); const showThoughtInProgress = $derived(Boolean(config().showThoughtInProgress)); + const alwaysShowToolCallContent = $derived(Boolean(config().alwaysShowToolCallContent)); const showMessageStats = $derived(Boolean(config().showMessageStats)); const showAgenticTurnStats = $derived(showMessageStats && Boolean(config().showAgenticTurnStats)); @@ -98,19 +99,6 @@ isStreaming ? agenticExecutingToolCallId(message.convId) : null ); - // Skip sections the user manually collapsed - we never override an explicit false. - let lastSeenExecutingToolCallId: string | null = null; - $effect(() => { - const current = currentlyExecutingToolCallId; - const previous = lastSeenExecutingToolCallId; - lastSeenExecutingToolCallId = current; - if (!current || current === previous) return; - const idx = sections.findIndex((s) => s.toolCallId === current); - if (idx >= 0 && expandedStates[idx] === undefined) { - expandedStates[idx] = true; - } - }); - type TurnGroup = { sections: AgenticSection[]; flatIndices: number[]; @@ -149,10 +137,11 @@ function getDefaultExpanded(section: AgenticSection): boolean { if ( + section.type === AgenticSectionType.TOOL_CALL || section.type === AgenticSectionType.TOOL_CALL_PENDING || section.type === AgenticSectionType.TOOL_CALL_STREAMING ) { - return false; + return alwaysShowToolCallContent; } if (section.type === AgenticSectionType.REASONING_PENDING) { diff --git a/tools/ui/src/lib/constants/settings-keys.ts b/tools/ui/src/lib/constants/settings-keys.ts index 0761ef8f0..bbcdde435 100644 --- a/tools/ui/src/lib/constants/settings-keys.ts +++ b/tools/ui/src/lib/constants/settings-keys.ts @@ -60,7 +60,7 @@ export const SETTINGS_KEYS = { MCP_SERVERS: 'mcpServers', MCP_REQUEST_TIMEOUT_SECONDS: 'mcpRequestTimeoutSeconds', AGENTIC_MAX_TURNS: 'agenticMaxTurns', - SHOW_TOOL_CALL_IN_PROGRESS: 'showToolCallInProgress', + ALWAYS_SHOW_TOOL_CALL_CONTENT: 'alwaysShowToolCallContent', // Performance PRE_ENCODE_CONVERSATION: 'preEncodeConversation', // Developer diff --git a/tools/ui/src/lib/constants/settings-registry.ts b/tools/ui/src/lib/constants/settings-registry.ts index b1404093c..03d4ce4e9 100644 --- a/tools/ui/src/lib/constants/settings-registry.ts +++ b/tools/ui/src/lib/constants/settings-registry.ts @@ -253,14 +253,14 @@ const SETTINGS_REGISTRY: Record = { } }, { - key: SETTINGS_KEYS.SHOW_TOOL_CALL_IN_PROGRESS, - label: 'Show tool call in progress', + key: SETTINGS_KEYS.ALWAYS_SHOW_TOOL_CALL_CONTENT, + label: 'Always show tool call content', help: 'Automatically expand tool call details while executing and keep them expanded after completion.', defaultValue: false, type: SettingsFieldType.CHECKBOX, section: SETTINGS_SECTION_SLUGS.DISPLAY, sync: { - serverKey: SETTINGS_KEYS.SHOW_TOOL_CALL_IN_PROGRESS, + serverKey: SETTINGS_KEYS.ALWAYS_SHOW_TOOL_CALL_CONTENT, paramType: SyncableParameterType.BOOLEAN } },