diff --git a/src/gateway/server-node-events.test.ts b/src/gateway/server-node-events.test.ts index dbf1bde579f..b8f5f74f2f5 100644 --- a/src/gateway/server-node-events.test.ts +++ b/src/gateway/server-node-events.test.ts @@ -682,6 +682,7 @@ describe("agent request events", () => { channel: "telegram", to: "123", }); - expect(opts.runId).toBe(opts.sessionId); + expect(typeof opts.runId).toBe("string"); + expect(opts.runId).not.toBe(opts.sessionId); }); }); diff --git a/src/gateway/server-node-events.ts b/src/gateway/server-node-events.ts index 2e9e911725a..27737cdd26d 100644 --- a/src/gateway/server-node-events.ts +++ b/src/gateway/server-node-events.ts @@ -431,7 +431,9 @@ export const handleNodeEvent = async (ctx: NodeEventContext, nodeId: string, evt void agentCommandFromIngress( { - runId: sessionId, + // Each ingress request must get its own run id. Reusing sessionId + // collapses per-run gateway state (seq tracking, aborts, tool streams). + runId: randomUUID(), message, images, sessionId,