From 3760ba2d7f1c5691c692e037c62c97e68d3a28b1 Mon Sep 17 00:00:00 2001 From: Shantur Rathore Date: Thu, 19 Feb 2026 20:42:23 +0000 Subject: [PATCH] fix(ui): scope tool input toggle to current tool call --- packages/ui/src/components/tool-call.tsx | 16 ++++++++-------- packages/ui/src/stores/preferences.tsx | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/ui/src/components/tool-call.tsx b/packages/ui/src/components/tool-call.tsx index 445a1250..28e935b2 100644 --- a/packages/ui/src/components/tool-call.tsx +++ b/packages/ui/src/components/tool-call.tsx @@ -84,7 +84,7 @@ interface ToolCallProps { export default function ToolCall(props: ToolCallProps) { - const { preferences, setDiffViewMode, setToolInputsVisibility } = useConfig() + const { preferences, setDiffViewMode } = useConfig() const { isDark } = useTheme() const { t } = useI18n() const toolCallMemo = createMemo(() => props.toolCall) @@ -173,8 +173,10 @@ export default function ToolCall(props: ToolCallProps) { const [userExpanded, setUserExpanded] = createSignal(null) const toolInputsVisibility = createMemo(() => preferences().toolInputsVisibility || "hidden") - const isToolInputVisible = createMemo(() => toolInputsVisibility() !== "hidden") - const inputDefaultExpanded = createMemo(() => toolInputsVisibility() === "expanded") + const [toolInputVisibilityOverride, setToolInputVisibilityOverride] = createSignal<"hidden" | "expanded" | null>(null) + const effectiveToolInputsVisibility = createMemo(() => toolInputVisibilityOverride() ?? toolInputsVisibility()) + const isToolInputVisible = createMemo(() => effectiveToolInputsVisibility() !== "hidden") + const inputDefaultExpanded = createMemo(() => effectiveToolInputsVisibility() === "expanded") const [inputSectionOverride, setInputSectionOverride] = createSignal(null) const [outputSectionOverride, setOutputSectionOverride] = createSignal(null) const inputSectionExpanded = () => { @@ -616,11 +618,9 @@ export default function ToolCall(props: ToolCallProps) { if (!expanded()) { toggle() } - if (isToolInputVisible()) { - setToolInputsVisibility("hidden") - return - } - setToolInputsVisibility("expanded") + + const currentlyVisible = isToolInputVisible() + setToolInputVisibilityOverride(currentlyVisible ? "hidden" : "expanded") } const renderer = createMemo(() => resolveToolRenderer(toolName())) diff --git a/packages/ui/src/stores/preferences.tsx b/packages/ui/src/stores/preferences.tsx index 520e6726..a48662b6 100644 --- a/packages/ui/src/stores/preferences.tsx +++ b/packages/ui/src/stores/preferences.tsx @@ -134,7 +134,7 @@ function normalizeUiSettings(input?: Partial | null): UiSettings { toolOutputExpansion: sanitized.toolOutputExpansion ?? defaultUiSettings.toolOutputExpansion, diagnosticsExpansion: sanitized.diagnosticsExpansion ?? defaultUiSettings.diagnosticsExpansion, toolInputsVisibility: - sanitized.toolInputsVisibility === "collapsed" || sanitized.toolInputsVisibility === "expanded" + sanitized.toolInputsVisibility === "hidden" || sanitized.toolInputsVisibility === "collapsed" || sanitized.toolInputsVisibility === "expanded" ? sanitized.toolInputsVisibility : defaultUiSettings.toolInputsVisibility, showUsageMetrics: sanitized.showUsageMetrics ?? defaultUiSettings.showUsageMetrics,