From ae42b0afb0c67f04f7ff4f3090779fcff29b6cc1 Mon Sep 17 00:00:00 2001 From: "paseo-bot[bot]" <266920839+paseo-bot[bot]@users.noreply.github.com> Date: Wed, 23 Sep 2026 22:06:53 +0200 Subject: [PATCH] fix(omp): wait for terminal event after custom messages (#3258) Custom messages may precede the prompt user message during an active OMP turn. Treating them as completion terminalized the turn while the provider continued working. Co-authored-by: paseo-bot[bot] <266920839+paseo-bot[bot]@users.noreply.github.com> --- .../server/agent/providers/omp/agent.test.ts | 19 +++++++++++++++++++ .../src/server/agent/providers/omp/agent.ts | 3 --- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/packages/server/src/server/agent/providers/omp/agent.test.ts b/packages/server/src/server/agent/providers/omp/agent.test.ts index 8539e38336..39390df0a9 100644 --- a/packages/server/src/server/agent/providers/omp/agent.test.ts +++ b/packages/server/src/server/agent/providers/omp/agent.test.ts @@ -376,6 +376,25 @@ describe("OMP agent client and session", () => { expect(omp.completedTurnCount()).toBe(1); }); + test("does not complete a turn when a custom message arrives before its user message", async () => { + const omp = new OmpHarness(); + await omp.start(); + await omp.requireStartTurn("hello OMP"); + + const runtime = omp.runtime(); + runtime.beginTurn(); + runtime.acceptCustomMessage("startup notice"); + + expect(omp.completedTurnCount()).toBe(0); + + runtime.acceptPrompt("hello OMP", "user-1"); + runtime.streamAssistantText("model turn completed"); + runtime.finishTurn(); + await waitForImmediate(); + + expect(omp.completedTurnCount()).toBe(1); + }); + test("omits live custom messages when display is false", async () => { const omp = new OmpHarness(); await omp.start(); diff --git a/packages/server/src/server/agent/providers/omp/agent.ts b/packages/server/src/server/agent/providers/omp/agent.ts index 13f36b5b7a..c8409caeb6 100644 --- a/packages/server/src/server/agent/providers/omp/agent.ts +++ b/packages/server/src/server/agent/providers/omp/agent.ts @@ -2033,9 +2033,6 @@ export class OmpAgentSession implements AgentSession { }); } } - if (!this.activeTurnHasUserMessage) { - this.completeTurn(turnId, []); - } return; }