From f9c147a08bb34fb59bba92587ac15eb15f4f7564 Mon Sep 17 00:00:00 2001 From: Mikael Hugo Date: Fri, 15 May 2026 08:00:35 +0200 Subject: [PATCH] fix(swarm): ignore heartbeats for silent worker timeout --- packages/coding-agent/src/core/subagent-runner.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/coding-agent/src/core/subagent-runner.ts b/packages/coding-agent/src/core/subagent-runner.ts index 598144f2e..1aa2b24df 100644 --- a/packages/coding-agent/src/core/subagent-runner.ts +++ b/packages/coding-agent/src/core/subagent-runner.ts @@ -84,6 +84,16 @@ function createSubagentUIContext(): ExtensionUIContext { }; } +function isMeaningfulSubagentOutputEvent(event: AgentSessionEvent): boolean { + if (String(event.type) === "runtime_heartbeat") return false; + if (event.type === "message_update") { + const streamEvent = event.assistantMessageEvent; + if (streamEvent.type === "text_delta") return streamEvent.delta.length > 0; + return true; + } + return true; +} + export interface RunSubagentOptions { signal?: AbortSignal; timeoutMs?: number; @@ -321,7 +331,9 @@ export async function runSubagent( options = { ...options, onEvent: (event) => { - if (!noOutputTimedOut) armNoOutputTimer(); + if (!noOutputTimedOut && isMeaningfulSubagentOutputEvent(event)) { + armNoOutputTimer(); + } previousOnEvent?.(event); }, };