authorgravatar for me@t3.ggTheo Browne <me@t3.gg> 2026-09-24 22:06:27-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-09-24 22:06:27-07:00
logdf9826f0806cc4874cd79f24a42a1e9e506030c2
treeda9f82f4722cfbd7c074eb5db746a18524a7f876
parent1e192b25583dd682324acd52f396be3d2ec9ee23
signature Signed by PGP key B5690EEEBB952194

feat(web): agents working banner links to the Agents panel (#13572)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

1 files changed, 21 insertions(+), 8 deletions(-)

apps/web/src/components/ChatView.tsx+21-8
...@@ -6299,6 +6299,9 @@ export default function ChatView(props: ChatViewProps) {...@@ -6299,6 +6299,9 @@ export default function ChatView(props: ChatViewProps) {
6299 }6299 }
6300 const working = activeBackgroundLiveness === "working";6300 const working = activeBackgroundLiveness === "working";
6301 const liveCount = agentPanelModel.liveCount;6301 const liveCount = agentPanelModel.liveCount;
6302 // Hidden once the Agents surface is on screen; the link would point at nothing.
6303 const showViewAgents =
6304 liveCount > 0 && !(rightPanelOpen && activeRightPanelSurface?.kind === "agents");
6302 return {6305 return {
6303 id: `background-liveness:${activeThread.id}`,6306 id: `background-liveness:${activeThread.id}`,
6304 variant: "default",6307 variant: "default",
...@@ -6315,22 +6318,32 @@ export default function ChatView(props: ChatViewProps) {...@@ -6315,22 +6318,32 @@ export default function ChatView(props: ChatViewProps) {
6315 : "Background work"6318 : "Background work"
6316 : "Monitoring",6319 : "Monitoring",
6317 actions: (6320 actions: (
6318 <Button6321 <>
6319 size="xs"6322 {showViewAgents ? (
6320 variant="ghost"6323 <Button size="xs" variant="ghost" aria-label="View agents" onClick={addAgentsSurface}>
6321 disabled={isStoppingBackgroundWork}6324 View
6322 onClick={() => void handleStopBackgroundWork()}6325 </Button>
6323 >6326 ) : null}
6324 {isStoppingBackgroundWork ? "Stopping..." : "Stop"}6327 <Button
6325 </Button>6328 size="xs"
6329 variant="ghost"
6330 disabled={isStoppingBackgroundWork}
6331 onClick={() => void handleStopBackgroundWork()}
6332 >
6333 {isStoppingBackgroundWork ? "Stopping..." : "Stop"}
6334 </Button>
6335 </>
6326 ),6336 ),
6327 };6337 };
6328 }, [6338 }, [
6329 activeBackgroundLiveness,6339 activeBackgroundLiveness,
6340 activeRightPanelSurface?.kind,
6330 activeThread,6341 activeThread,
6342 addAgentsSurface,
6331 agentPanelModel.liveCount,6343 agentPanelModel.liveCount,
6332 handleStopBackgroundWork,6344 handleStopBackgroundWork,
6333 isStoppingBackgroundWork,6345 isStoppingBackgroundWork,
6346 rightPanelOpen,
6334 ]);6347 ]);
6335 // A woken thread announces itself in the open view, not just the sidebar6348 // A woken thread announces itself in the open view, not just the sidebar
6336 // pill. Dismissing marks the wake as seen (same acknowledgment as the6349 // pill. Dismissing marks the wake as seen (same acknowledgment as the