diff --git a/vibn-frontend/components/vibn-chat/chat-panel.tsx b/vibn-frontend/components/vibn-chat/chat-panel.tsx index 2bddaddc..c0eb0aef 100644 --- a/vibn-frontend/components/vibn-chat/chat-panel.tsx +++ b/vibn-frontend/components/vibn-chat/chat-panel.tsx @@ -490,8 +490,12 @@ function stripRawToolLogs(text: string): string { const MessageBubble = React.memo(function MessageBubble({ msg, + isLast, + sending, }: { msg: Message; + isLast: boolean; + sending: boolean; }) { const isUser = msg.role === "user"; const proseWrap: React.CSSProperties = { @@ -546,7 +550,7 @@ const MessageBubble = React.memo(function MessageBubble({ }} > {!isUser && msg.timeline && msg.timeline.length > 0 && ( - + )} {/* Render the legacy bottom content bubble ONLY when: @@ -730,67 +734,78 @@ function TimelineToolGroup({
- + {isError ? ( - "✗" - ) : !isDone ? ( + + ) : isDone ? ( + + ) : ( - ) : ( - )} - - {friendlyToolName(e.name)} - - {argSummary && ( - - {argSummary} + +
+ + {getToolIcon(e.name)} - )} - {(() => { - const summary = summarizeToolResult(e.result); - if (!summary) return null; - return ( + + {friendlyToolName(e.name)} + + + {argSummary && ( - — {summary.label} + {argSummary} - ); - })()} + )} + + {(() => { + const summary = summarizeToolResult(e.result); + if (!summary) return null; + return ( + + — {summary.label} + + ); + })()} +
); })}