mirror of
https://github.com/ggml-org/llama.cpp.git
synced 2026-07-21 10:15:53 +00:00
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.
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -253,14 +253,14 @@ const SETTINGS_REGISTRY: Record<string, SettingsSectionEntry> = {
|
||||
}
|
||||
},
|
||||
{
|
||||
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
|
||||
}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user