diff --git a/packages/app/src/components/agent-list.tsx b/packages/app/src/components/agent-list.tsx index 1881b4ce4..f89ad51a3 100644 --- a/packages/app/src/components/agent-list.tsx +++ b/packages/app/src/components/agent-list.tsx @@ -261,9 +261,23 @@ export function AgentList({ [isActionSheetVisible, onAgentSelect], ); - const handleAgentLongPress = useCallback((agent: AggregatedAgent) => { - setActionAgent(agent); - }, []); + const handleAgentLongPress = useCallback( + (agent: AggregatedAgent) => { + const isRunning = agent.status === "running" || agent.status === "initializing"; + if (isRunning) { + setActionAgent(agent); + return; + } + + const client = useSessionStore.getState().sessions[agent.serverId]?.client ?? null; + if (!client) { + setActionAgent(agent); + return; + } + void client.archiveAgent(agent.id); + }, + [], + ); const handleCloseActionSheet = useCallback(() => { setActionAgent(null); @@ -365,7 +379,9 @@ export function AgentList({ > - {isActionDaemonUnavailable ? "Host offline" : "Archive this session?"} + {isActionDaemonUnavailable + ? "Host offline" + : "This agent is still running. Archiving it will stop the agent."} (current === tabId ? null : current));