diff --git a/ui/litellm-dashboard/src/app/sessions/[sid]/view.tsx b/ui/litellm-dashboard/src/app/sessions/[sid]/view.tsx index 771a0167d0d..c992e23e6b7 100644 --- a/ui/litellm-dashboard/src/app/sessions/[sid]/view.tsx +++ b/ui/litellm-dashboard/src/app/sessions/[sid]/view.tsx @@ -174,8 +174,14 @@ export default function SessionThreadView() { const messagesEndRef = useRef(null); const scrollContainerRef = useRef(null); + // Only ASSISTANT messages count as "in flight". User messages from opencode + // have no completed_at so they normalize as in_progress, but they're not + // running anything — only assistant turns are. const hasInProgress = useMemo( - () => messages.some((m) => m.status === "in_progress"), + () => + messages.some( + (m) => m.role === "assistant" && m.status === "in_progress", + ), [messages], );