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