From eec5fa3febceb1c159ccb1e7245ccdcc22573d2d Mon Sep 17 00:00:00 2001 From: kfiramar <83420275+kfiramar@users.noreply.github.com> Date: Mon, 27 Apr 2026 13:11:59 +0300 Subject: [PATCH] Enable native Codex websocket responses on beta-gated models (#1658) Integrated into release/v3.7.2 --- open-sse/config/codexClient.ts | 1 + tests/unit/executor-codex.test.ts | 2 ++ tests/unit/t20-t22-provider-headers.test.ts | 1 + 3 files changed, 4 insertions(+) diff --git a/open-sse/config/codexClient.ts b/open-sse/config/codexClient.ts index 25db6b1930..383a9dbbf2 100644 --- a/open-sse/config/codexClient.ts +++ b/open-sse/config/codexClient.ts @@ -36,6 +36,7 @@ export function getCodexDefaultHeaders(): Record { return { Version: getCodexClientVersion(), "Openai-Beta": "responses=experimental", + "X-Codex-Beta-Features": "responses_websockets", "User-Agent": getCodexUserAgent(), }; } diff --git a/tests/unit/executor-codex.test.ts b/tests/unit/executor-codex.test.ts index cc3b43272e..a1b6080b0f 100644 --- a/tests/unit/executor-codex.test.ts +++ b/tests/unit/executor-codex.test.ts @@ -108,6 +108,8 @@ test("CodexExecutor.buildHeaders binds workspace ids and disables SSE accept for assert.equal(standardHeaders.Accept, "text/event-stream"); assert.equal(standardHeaders["chatgpt-account-id"], "workspace-1"); assert.equal(standardHeaders.Version, "0.125.0"); + assert.equal(standardHeaders["Openai-Beta"], "responses=experimental"); + assert.equal(standardHeaders["X-Codex-Beta-Features"], "responses_websockets"); assert.equal(standardHeaders["User-Agent"], "codex-cli/0.125.0 (Windows 10.0.26100; x64)"); assert.equal(compactHeaders.Accept, "application/json"); }); diff --git a/tests/unit/t20-t22-provider-headers.test.ts b/tests/unit/t20-t22-provider-headers.test.ts index 0b6be2972b..4026784458 100644 --- a/tests/unit/t20-t22-provider-headers.test.ts +++ b/tests/unit/t20-t22-provider-headers.test.ts @@ -59,6 +59,7 @@ test("T20: codex config advertises current client headers and auto-review model" const codex = REGISTRY.codex; assert.equal(codex.headers.Version, "0.125.0"); assert.equal(codex.headers["Openai-Beta"], "responses=experimental"); + assert.equal(codex.headers["X-Codex-Beta-Features"], "responses_websockets"); assert.equal(codex.headers["User-Agent"], "codex-cli/0.125.0 (Windows 10.0.26100; x64)"); assert.ok(codex.models.some((model) => model.id === "codex-auto-review")); });