diff --git a/src/agents/embedded-agent-runner/run/attempt-session-cleanup.test.ts b/src/agents/embedded-agent-runner/run/attempt-session-cleanup.test.ts index c53ca44b8cc0..01b883920ed2 100644 --- a/src/agents/embedded-agent-runner/run/attempt-session-cleanup.test.ts +++ b/src/agents/embedded-agent-runner/run/attempt-session-cleanup.test.ts @@ -97,6 +97,19 @@ describe("cleanupEmbeddedAttemptSessionPhase", () => { expect(input.emitDiagnosticRunCompleted).toHaveBeenCalledWith("completed", null, undefined); }); + it("keeps compaction timeout observations abort-like only for cleanup", async () => { + const input = createInput(); + const readState = input.readState; + input.readState = () => ({ ...readState(), timedOutDuringCompaction: true }); + + await cleanupEmbeddedAttemptSessionPhase(input as never); + + expect(hoisted.cleanupEmbeddedAttemptResources).toHaveBeenCalledWith( + expect.objectContaining({ aborted: true }), + ); + expect(input.emitDiagnosticRunCompleted).toHaveBeenCalledWith("completed", null, undefined); + }); + it("emits the before-agent blocked status and owner", async () => { const input = createInput({ readState: () => ({ diff --git a/src/agents/embedded-agent-runner/run/attempt-session-settle.ts b/src/agents/embedded-agent-runner/run/attempt-session-settle.ts index a923c03d468f..541119e01ff6 100644 --- a/src/agents/embedded-agent-runner/run/attempt-session-settle.ts +++ b/src/agents/embedded-agent-runner/run/attempt-session-settle.ts @@ -175,6 +175,8 @@ export async function cleanupEmbeddedAttemptSessionPhase( const finalState = input.readState(); const cleanupFailure = cleanupError; const beforeAgentRunBlocked = finalState.beforeAgentRunBlockedBy !== undefined; + const diagnosticTerminalAborted = + finalState.aborted || finalState.timedOut || finalState.idleTimedOut; input.emitDiagnosticRunCompleted?.( cleanupFailure ? "error" @@ -182,10 +184,7 @@ export async function cleanupEmbeddedAttemptSessionPhase( ? "blocked" : finalState.promptError ? "error" - : finalState.aborted || - finalState.timedOut || - finalState.idleTimedOut || - finalState.timedOutDuringCompaction + : diagnosticTerminalAborted ? "aborted" : "completed", cleanupFailure ?? finalState.promptError,