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) {