From ab483ea93c802c6b74019f8c8ad999edff71de16 Mon Sep 17 00:00:00 2001 From: klopez4212 Date: Sun, 5 Jul 2026 07:39:46 +0100 Subject: [PATCH] Always surface a stopped default agent; acknowledge Run now MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Activation card: a stopped default agent now always shows the card — "is it running or just silent?" must never be ambiguous, especially since automation prompts tag the default agent and go nowhere while it's stopped. The delayed path still covers running-but-unresponsive. Run now: the automation prompt is invisible in the timeline, so firing one now toasts "Asked {agent} to fix the CI failures" / "…address the review comments". (The prompts already mention the default agent — the send path tags it on every message — so multi-agent chats route the work to the default agent by construction.) Co-Authored-By: Claude Fable 5 --- desktop/src/features/chats/ui/ChatDetail.tsx | 9 ++++++++- desktop/src/features/chats/ui/ChatWorkPanel.tsx | 11 +++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/desktop/src/features/chats/ui/ChatDetail.tsx b/desktop/src/features/chats/ui/ChatDetail.tsx index 5aceb466a..73ec971ab 100644 --- a/desktop/src/features/chats/ui/ChatDetail.tsx +++ b/desktop/src/features/chats/ui/ChatDetail.tsx @@ -539,8 +539,14 @@ export function ChatDetail({ hasObserver, latestOwnMessageNeedsAgent, ]); + // A stopped default agent always shows the card — "is it running, is it + // silent?" must never be ambiguous. The delayed path still covers a + // running-but-unresponsive agent. + const defaultAgentInactive = + defaultAgent != null && !isManagedAgentActive(defaultAgent); const shouldShowAgentActivationCard = - latestOwnMessageNeedsAgent && (!hasObserver || showDelayedActivationCard); + (defaultAgentInactive && latestVisibleMessage != null) || + (latestOwnMessageNeedsAgent && (!hasObserver || showDelayedActivationCard)); const forceScrollSignature = latestVisibleMessageIsOwn ? latestVisibleMessage.id : null; @@ -728,6 +734,7 @@ export function ChatDetail({ { if (!onAutomationPrompt || !effectiveHref) { return; @@ -155,7 +161,8 @@ export function ChatWorkPanel({ onAutomationPrompt( `There are unanswered review comments on ${effectiveHref}. Address each comment and its replies, push any needed changes, reply to the threads, and resolve every conversation that has been addressed.`, ); - }, [chatId, effectiveHref, onAutomationPrompt, openThreads]); + toast.success(`Asked ${agentName} to address the review comments`); + }, [agentName, chatId, effectiveHref, onAutomationPrompt, openThreads]); // Automation: prompt the agent on CI failure / newly-open review threads. // Watermarks keep this to one nudge per failing sha and per rise in open