From 25abfb540457a8ba867145cadb008fb9c1aee673 Mon Sep 17 00:00:00 2001 From: 7418 <7418@openclaw.ai> Date: Thu, 12 Feb 2026 01:25:47 +0800 Subject: [PATCH] fix: show "generating response" status when tools completed but AI still streaming Co-Authored-By: Claude Opus 4.6 --- src/components/ai-elements/tool-actions-group.tsx | 1 + src/components/chat/StreamingMessage.tsx | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/components/ai-elements/tool-actions-group.tsx b/src/components/ai-elements/tool-actions-group.tsx index 00a7a29..f1cb43b 100644 --- a/src/components/ai-elements/tool-actions-group.tsx +++ b/src/components/ai-elements/tool-actions-group.tsx @@ -222,6 +222,7 @@ export function ToolActionsGroup({ const summaryParts: string[] = []; if (runningCount > 0) summaryParts.push(`${runningCount} running`); if (doneCount > 0) summaryParts.push(`${doneCount} completed`); + if (runningCount === 0 && isStreaming) summaryParts.push('generating response'); if (summaryParts.length === 0) summaryParts.push(`${tools.length} actions`); return ( diff --git a/src/components/chat/StreamingMessage.tsx b/src/components/chat/StreamingMessage.tsx index a6f1174..4dba8aa 100644 --- a/src/components/chat/StreamingMessage.tsx +++ b/src/components/chat/StreamingMessage.tsx @@ -147,7 +147,11 @@ export function StreamingMessage({ // Extract a human-readable summary of the running command const getRunningCommandSummary = (): string | undefined => { - if (runningTools.length === 0) return undefined; + if (runningTools.length === 0) { + // All tools completed but still streaming — AI is generating text + if (toolUses.length > 0) return 'Generating response...'; + return undefined; + } const tool = runningTools[runningTools.length - 1]; const input = tool.input as Record; if (tool.name === 'Bash' && input.command) {