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));