diff --git a/vibn-frontend/components/vibn-chat/chat-panel.tsx b/vibn-frontend/components/vibn-chat/chat-panel.tsx index 26c46b46..61be5d3e 100644 --- a/vibn-frontend/components/vibn-chat/chat-panel.tsx +++ b/vibn-frontend/components/vibn-chat/chat-panel.tsx @@ -65,7 +65,12 @@ interface Message { type TimelineEntry = | { kind: "thought"; text: string } - | { kind: "tool"; name: string; status: "running" | "done"; result?: string } + | { + kind: "tool"; + name: string; + status: "running" | "done" | "error"; + result?: string; + } // A text segment from one round of the assistant's tool loop. // Each text SSE event from the server starts a new entry; subsequent // streaming chunks for that same round append to the most-recent @@ -589,6 +594,7 @@ function TimelineToolGroup({ const [expanded, setExpanded] = useState(false); const count = entries.length; const allDone = entries.every((e) => e.status === "done"); + const hasError = entries.some((e) => e.status === "error"); return (