From 5fa277b320531f43a1378f357bac6143f99e77c6 Mon Sep 17 00:00:00 2001 From: Armin Ronacher Date: Sun, 3 May 2026 23:25:56 +0200 Subject: [PATCH] fix(coding-agent): close codex websocket sessions Fixes #4103 --- packages/coding-agent/CHANGELOG.md | 4 ++++ packages/coding-agent/src/core/agent-session.ts | 2 ++ 2 files changed, 6 insertions(+) diff --git a/packages/coding-agent/CHANGELOG.md b/packages/coding-agent/CHANGELOG.md index 77c3dea5..c9dbcd3d 100644 --- a/packages/coding-agent/CHANGELOG.md +++ b/packages/coding-agent/CHANGELOG.md @@ -14,6 +14,10 @@ - Changed `read` tool rendering to collapse Pi documentation, AGENTS/CLAUDE context files, and `SKILL.md` contents by default in interactive output. +### Fixed + +- Fixed OpenAI Codex WebSocket transport keeping `--print` and JSON mode processes alive after the response by closing cached WebSocket sessions during session shutdown ([#4103](https://github.com/badlogic/pi-mono/issues/4103)). + ## [0.72.1] - 2026-05-02 ## [0.72.0] - 2026-05-01 diff --git a/packages/coding-agent/src/core/agent-session.ts b/packages/coding-agent/src/core/agent-session.ts index 10fe3760..5e93e5f1 100644 --- a/packages/coding-agent/src/core/agent-session.ts +++ b/packages/coding-agent/src/core/agent-session.ts @@ -31,6 +31,7 @@ import { modelsAreEqual, resetApiProviders, } from "@mariozechner/pi-ai"; +import { closeOpenAICodexWebSocketSessions } from "@mariozechner/pi-ai/openai-codex-responses"; import { theme } from "../modes/interactive/theme/theme.js"; import { stripFrontmatter } from "../utils/frontmatter.js"; import { sleep } from "../utils/sleep.js"; @@ -752,6 +753,7 @@ export class AgentSession { ); this._disconnectFromAgent(); this._eventListeners = []; + closeOpenAICodexWebSocketSessions(this.sessionId); } // =========================================================================