From 0a4e81e97d3a0e97de3ed3b387b76f291bca9f90 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Tue, 18 Aug 2026 03:39:40 -0700 Subject: [PATCH] fix(cli): mark in-flight agent runs unsuccessful (#125757) --- src/commands/agent-via-gateway.test.ts | 7 ++++++- src/commands/agent-via-gateway.ts | 5 +---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/commands/agent-via-gateway.test.ts b/src/commands/agent-via-gateway.test.ts index 0b3710b71628..351fe6283c40 100644 --- a/src/commands/agent-via-gateway.test.ts +++ b/src/commands/agent-via-gateway.test.ts @@ -2136,18 +2136,23 @@ describe("agentCliCommand", () => { it("surfaces duplicate in-flight gateway runs without pretending a reply arrived", async () => { await withTempStore(async () => { + const signals = createSignalProcess(); callGateway.mockResolvedValue({ runId: "idem-1", status: "in_flight", sessionKey: "agent:main:main", }); - await agentCliCommand({ message: "hi", to: "+1555", runId: "idem-1" }, runtime); + await agentCliCommand({ message: "hi", to: "+1555", runId: "idem-1" }, runtime, { + process: signals.processLike, + }); expect(runtime.error).toHaveBeenCalledWith( "Agent run idem-1 is already in flight; not starting a duplicate run.", ); expect(runtime.log).not.toHaveBeenCalledWith("No reply from agent."); + expect(runtime.exit).not.toHaveBeenCalled(); + expect(signals.processLike.exitCode).toBe(1); }); }); diff --git a/src/commands/agent-via-gateway.ts b/src/commands/agent-via-gateway.ts index 192ffa869c3c..013f15a21f4d 100644 --- a/src/commands/agent-via-gateway.ts +++ b/src/commands/agent-via-gateway.ts @@ -1170,10 +1170,10 @@ async function agentViaGatewayCommand( if (!response) { throw new Error("gateway agent call did not return a response"); } + markAgentRunExitCode(response.status, signalBridge); if (opts.json) { writeRuntimeJson(runtime, buildGatewayJsonResponse(response)); - markAgentRunExitCode(response.status, signalBridge); return response; } @@ -1189,7 +1189,6 @@ async function agentViaGatewayCommand( if (response?.status !== "ok") { runtime.log(response?.summary ? response.summary : "No reply from agent."); } - markAgentRunExitCode(response.status, signalBridge); return response; } @@ -1200,8 +1199,6 @@ async function agentViaGatewayCommand( } } - markAgentRunExitCode(response.status, signalBridge); - return response; }