- {/* Header */}
-
-
-
-
-
-
- {(activeTask?.agent_id ? getActorName("agent", activeTask.agent_id) : agentName) ?? "Agent"} is working
-
-
{elapsed}
- {toolCount > 0 && (
-
- {toolCount} tool {toolCount === 1 ? "call" : "calls"}
-
+ <>
+ {/* Sentinel — zero-height element that IntersectionObserver watches */}
+
+
+
- {cancelling ? (
-
- ) : (
-
+ >
+ {/* Header */}
+
+
+
+
+
+
+ {name} is working
+
+
{elapsed}
+ {!isStuck && toolCount > 0 && (
+
+ {toolCount} tool {toolCount === 1 ? "call" : "calls"}
+
)}
-
Stop
-
-
-
- {/* Timeline content */}
- {items.length > 0 && (
-
- {items.map((item, idx) => (
-
- ))}
-
- {!autoScroll && (
+ {isStuck ? (
+ ) : (
+
)}
- )}
-
+
+ {/* Timeline content — collapses when stuck */}
+
+ {items.length > 0 && (
+
+ {items.map((item, idx) => (
+
+ ))}
+
+ {!autoScroll && (
+
+ )}
+
+ )}
+
+
+ >
);
}
diff --git a/apps/web/features/issues/components/issue-detail.tsx b/apps/web/features/issues/components/issue-detail.tsx
index 4343a2ba..8b3687b7 100644
--- a/apps/web/features/issues/components/issue-detail.tsx
+++ b/apps/web/features/issues/components/issue-detail.tsx
@@ -771,12 +771,11 @@ export function IssueDetail({ issueId, onDelete, defaultSidebarOpen = true, layo
{/* Agent live output */}
-