From b269e652bc8118abb53e6486a839cf120dc55043 Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Thu, 6 Aug 2026 07:11:23 +0800 Subject: [PATCH] chore(codex): bump app-server to 0.146.1 --- docs/plugins/codex-computer-use.md | 2 +- docs/plugins/codex-harness-reference.md | 12 +- docs/plugins/codex-harness.md | 8 +- docs/plugins/codex-native-plugins.md | 4 +- .../media-understanding-provider.test.ts | 2 +- extensions/codex/package.json | 2 +- .../src/app-server/attempt-startup.test.ts | 6 +- .../auth-profile-runtime-contract.test.ts | 2 +- .../codex/src/app-server/client.test.ts | 16 +-- .../codex/src/app-server/models.test.ts | 8 +- .../v2/CodexAppServerProtocolDefinitions.json | 7 ++ .../app-server/run-attempt-test-harness.ts | 2 +- .../run-attempt-thread-cleanup.test.ts | 2 +- .../run-attempt.context-engine.test.ts | 2 +- ...ema-normalization-runtime-contract.test.ts | 2 +- .../src/app-server/shared-client.test.ts | 112 +++++++++--------- .../src/app-server/side-question.test.ts | 2 +- .../src/app-server/thread-lifecycle.test.ts | 2 +- .../thread-lifecycle.user-mcp-servers.test.ts | 2 +- .../app-server/transport-websocket.test.ts | 2 +- .../app-server/upstream-session-fork.test.ts | 2 +- extensions/codex/src/app-server/version.ts | 2 +- .../codex/src/conversation-binding.test.ts | 2 +- .../codex/src/web-search-provider.test.ts | 2 +- extensions/openai/openai-provider.ts | 2 +- pnpm-lock.yaml | 62 +++++----- pnpm-workspace.yaml | 2 +- 27 files changed, 139 insertions(+), 132 deletions(-) diff --git a/docs/plugins/codex-computer-use.md b/docs/plugins/codex-computer-use.md index 58e342f34cd4..7d1eaba0f7dd 100644 --- a/docs/plugins/codex-computer-use.md +++ b/docs/plugins/codex-computer-use.md @@ -244,7 +244,7 @@ reconciliation so OpenClaw does not override that selection. ## Remote marketplaces -Codex 0.146.0 can read and install Computer Use plugins from discovered remote +Codex 0.146.1 can read and install Computer Use plugins from discovered remote marketplaces. OpenClaw passes the opaque remote plugin ID returned by Codex to `plugin/read` and `plugin/install`; a human-readable plugin name is not a valid substitute. diff --git a/docs/plugins/codex-harness-reference.md b/docs/plugins/codex-harness-reference.md index cb011cadd703..daf1322a77c2 100644 --- a/docs/plugins/codex-harness-reference.md +++ b/docs/plugins/codex-harness-reference.md @@ -131,7 +131,7 @@ flags, and plugin allow/deny references into this block. Explicit canonical ## App-server transport For ordinary harness turns, OpenClaw starts the managed Codex binary shipped -with the official plugin (currently `@openai/codex` `0.146.0`): +with the official plugin (currently `@openai/codex` `0.146.1`): ```bash codex app-server --listen stdio:// @@ -253,7 +253,7 @@ If the normal app-server runtime would be `danger-full-access`, enabling permission profile instead. Codex-managed network enforcement is sandboxed networking, so a full-access profile would not protect outbound traffic. -The plugin accepts exactly stable Codex app-server `0.146.0`. Older or newer +The plugin accepts exactly stable Codex app-server `0.146.1`. Older or newer versions, prereleases, build-suffixed versions, and unversioned app-server handshakes are rejected. The same exact-version requirement applies to explicit custom executables, remote app-servers, and macOS desktop binaries. @@ -304,7 +304,7 @@ configured plugin's details to reserve the denied app IDs. It does not scan unrelated marketplaces or install, enable, or authenticate the disabled plugin; missing ownership fails closed. -Only connect OpenClaw to a `0.146.0` remote app-server trusted to accept +Only connect OpenClaw to a `0.146.1` remote app-server trusted to accept configured marketplace plugin installs and inventory refreshes. Missing modern inventory methods and server, authentication, or transport failures fail closed. @@ -380,7 +380,7 @@ The stable default is fail-closed: active OpenClaw sandboxing disables native Codex execution surfaces that would otherwise run from the Codex app-server host. Use `appServer.experimental.sandboxExecServer: true` only when you want to try Codex's remote environment support with OpenClaw's sandbox backend. -This preview path uses the pinned Codex `0.146.0` app-server. +This preview path uses the pinned Codex `0.146.1` app-server. ```json5 { @@ -663,8 +663,8 @@ response remains authoritative even if it contains no visible models; HTTP `401` and `403` return an empty catalog rather than exposing fallback models. -The current bundled harness is `@openai/codex` `0.146.0`. A live `model/list` -probe against the official `0.146.0` app-server returned these public picker +The current bundled harness is `@openai/codex` `0.146.1`. A live `model/list` +probe against the official `0.146.1` app-server returned these public picker rows: | Model id | Input modalities | Reasoning efforts | diff --git a/docs/plugins/codex-harness.md b/docs/plugins/codex-harness.md index 778fd3d3e4c1..93f57f59f54b 100644 --- a/docs/plugins/codex-harness.md +++ b/docs/plugins/codex-harness.md @@ -66,10 +66,10 @@ channel is the communication surface. - The official `@openclaw/codex` plugin installed. Include `codex` in `plugins.allow` if your config uses an allowlist. -- Codex app-server `0.146.0`. The plugin ships and manages `@openai/codex` - `0.146.0` by default, so a `codex` command on `PATH` does not affect normal +- Codex app-server `0.146.1`. The plugin ships and manages `@openai/codex` + `0.146.1` by default, so a `codex` command on `PATH` does not affect normal startup. Explicit custom, remote, and macOS desktop-owned app-servers must - report the same exact stable `0.146.0` version. + report the same exact stable `0.146.1` version. - Node.js on the remote Codex app-server host when `remoteWorkspaceRoot` is set and cross-machine workspace attachments must be transferred. - Codex auth through `openclaw models auth login --provider openai`, an @@ -1181,7 +1181,7 @@ instead of a plain OpenAI API-key failure. Doctor rewrites legacy model refs to `openai/*`, removes stale session and whole-agent runtime pins, and preserves existing auth-profile overrides. -**The app-server is rejected:** use exactly stable Codex `0.146.0`. Older or +**The app-server is rejected:** use exactly stable Codex `0.146.1`. Older or newer versions, prereleases, build-suffixed versions, and unversioned servers are rejected because OpenClaw validates generated schemas and runtime contracts against the Codex version it ships. Update or remove custom, remote, or desktop diff --git a/docs/plugins/codex-native-plugins.md b/docs/plugins/codex-native-plugins.md index 25948d243eb5..f94254c2af9a 100644 --- a/docs/plugins/codex-native-plugins.md +++ b/docs/plugins/codex-native-plugins.md @@ -22,8 +22,8 @@ working. - The agent runtime must be the native Codex harness. - `plugins.entries.codex.enabled` is `true`. - `plugins.entries.codex.config.codexPlugins.enabled` is `true`. -- Codex app-server reports exactly stable `0.146.0`. The official plugin ships - `@openai/codex` `0.146.0`; custom, remote, and macOS desktop-owned binaries +- Codex app-server reports exactly stable `0.146.1`. The official plugin ships + `@openai/codex` `0.146.1`; custom, remote, and macOS desktop-owned binaries must use the same exact version. - The target Codex app-server can see the expected marketplace, plugin, and app inventory. diff --git a/extensions/codex/media-understanding-provider.test.ts b/extensions/codex/media-understanding-provider.test.ts index 6cd3935f46f2..4178c27e6afe 100644 --- a/extensions/codex/media-understanding-provider.test.ts +++ b/extensions/codex/media-understanding-provider.test.ts @@ -47,7 +47,7 @@ function threadStartResult() { status: { type: "idle" }, path: null, cwd: "/tmp/openclaw-agent", - cliVersion: "0.146.0", + cliVersion: "0.146.1", source: "unknown", agentNickname: null, agentRole: null, diff --git a/extensions/codex/package.json b/extensions/codex/package.json index cb71d4c77cce..484f8fc4e3c7 100644 --- a/extensions/codex/package.json +++ b/extensions/codex/package.json @@ -8,7 +8,7 @@ }, "type": "module", "dependencies": { - "@openai/codex": "0.146.0", + "@openai/codex": "0.146.1", "smol-toml": "1.7.1", "typebox": "1.3.6", "ws": "8.21.1", diff --git a/extensions/codex/src/app-server/attempt-startup.test.ts b/extensions/codex/src/app-server/attempt-startup.test.ts index 73a138a85f7d..0ec7fc89d613 100644 --- a/extensions/codex/src/app-server/attempt-startup.test.ts +++ b/extensions/codex/src/app-server/attempt-startup.test.ts @@ -176,7 +176,7 @@ async function captureExpectedRuntimeArtifact( before, startOptions: appServer.start, spawnIdentity, - runtimeIdentity: { serverVersion: "0.146.0", userAgent: "openclaw/0.146.0 (macOS; test)" }, + runtimeIdentity: { serverVersion: "0.146.1", userAgent: "openclaw/0.146.1 (macOS; test)" }, }); } @@ -186,7 +186,7 @@ async function answerInitialize(harness: ClientHarness): Promise { timeout: HARNESS_REQUEST_TIMEOUT_MS, }); const initialize = JSON.parse(harness.writes[0] ?? "{}") as { id?: number }; - harness.send({ id: initialize.id, result: { userAgent: "openclaw/0.146.0 (macOS; test)" } }); + harness.send({ id: initialize.id, result: { userAgent: "openclaw/0.146.1 (macOS; test)" } }); } async function waitForRequest( @@ -225,7 +225,7 @@ function threadStartResult(threadId = "thread-1") { status: { type: "idle" }, path: null, cwd: "/repo", - cliVersion: "0.146.0", + cliVersion: "0.146.1", source: "unknown", agentNickname: null, agentRole: null, diff --git a/extensions/codex/src/app-server/auth-profile-runtime-contract.test.ts b/extensions/codex/src/app-server/auth-profile-runtime-contract.test.ts index d26d0929dc13..6886001c89e2 100644 --- a/extensions/codex/src/app-server/auth-profile-runtime-contract.test.ts +++ b/extensions/codex/src/app-server/auth-profile-runtime-contract.test.ts @@ -170,7 +170,7 @@ function threadStartResult(threadId = "thread-auth-contract") { status: { type: "idle" }, path: null, cwd: "", - cliVersion: "0.146.0", + cliVersion: "0.146.1", source: "unknown", agentNickname: null, agentRole: null, diff --git a/extensions/codex/src/app-server/client.test.ts b/extensions/codex/src/app-server/client.test.ts index 7bea523a3b4f..953393a12946 100644 --- a/extensions/codex/src/app-server/client.test.ts +++ b/extensions/codex/src/app-server/client.test.ts @@ -331,7 +331,7 @@ describe("CodexAppServerClient", () => { const { harness, initializing, outbound } = startInitialize(); harness.send({ id: outbound.id, - result: { userAgent: "openclaw/0.146.0 (macOS; test)" }, + result: { userAgent: "openclaw/0.146.1 (macOS; test)" }, }); await expect(initializing).resolves.toBeUndefined(); @@ -370,11 +370,11 @@ describe("CodexAppServerClient", () => { const { harness, initializing, outbound } = startInitialize(); harness.send({ id: outbound.id, - result: { userAgent: "openclaw/0.145.0 (macOS; test)" }, + result: { userAgent: "openclaw/0.146.0 (macOS; test)" }, }); await expect(initializing).rejects.toThrow( - `Codex app-server ${CODEX_APP_SERVER_VERSION} is required, but detected 0.145.0`, + `Codex app-server ${CODEX_APP_SERVER_VERSION} is required, but detected 0.146.0`, ); expect(harness.writes).toHaveLength(1); }); @@ -383,11 +383,11 @@ describe("CodexAppServerClient", () => { const { harness, initializing, outbound } = startInitialize(); harness.send({ id: outbound.id, - result: { userAgent: "openclaw/0.146.0-alpha.2 (macOS; test)" }, + result: { userAgent: "openclaw/0.146.1-alpha.2 (macOS; test)" }, }); await expect(initializing).rejects.toThrow( - `Codex app-server ${CODEX_APP_SERVER_VERSION} is required, but detected 0.146.0-alpha.2`, + `Codex app-server ${CODEX_APP_SERVER_VERSION} is required, but detected 0.146.1-alpha.2`, ); expect(harness.writes).toHaveLength(1); }); @@ -396,11 +396,11 @@ describe("CodexAppServerClient", () => { const { harness, initializing, outbound } = startInitialize(); harness.send({ id: outbound.id, - result: { userAgent: "openclaw/0.146.0+alpha.2 (macOS; test)" }, + result: { userAgent: "openclaw/0.146.1+alpha.2 (macOS; test)" }, }); await expect(initializing).rejects.toThrow( - `Codex app-server ${CODEX_APP_SERVER_VERSION} is required, but detected 0.146.0+alpha.2`, + `Codex app-server ${CODEX_APP_SERVER_VERSION} is required, but detected 0.146.1+alpha.2`, ); expect(harness.writes).toHaveLength(1); }); @@ -432,7 +432,7 @@ describe("CodexAppServerClient", () => { }); it("blocks stable Codex app-server versions newer than generated schemas", async () => { - const newerVersion = "0.146.1"; + const newerVersion = "0.146.2"; const { harness, initializing, outbound } = startInitialize(); harness.send({ id: outbound.id, diff --git a/extensions/codex/src/app-server/models.test.ts b/extensions/codex/src/app-server/models.test.ts index a65ef799c1ec..489aa5c2769c 100644 --- a/extensions/codex/src/app-server/models.test.ts +++ b/extensions/codex/src/app-server/models.test.ts @@ -149,7 +149,7 @@ describe("listCodexAppServerModels", () => { const initialize = JSON.parse(harness.writes[0] ?? "{}") as { id?: number }; harness.send({ id: initialize.id, - result: { userAgent: "openclaw/0.146.0 (macOS; test)" }, + result: { userAgent: "openclaw/0.146.1 (macOS; test)" }, }); await vi.waitFor(() => expect(harness.writes.length).toBeGreaterThanOrEqual(3)); const list = JSON.parse(harness.writes[2] ?? "{}") as { id?: number; method?: string }; @@ -170,7 +170,7 @@ describe("listCodexAppServerModels", () => { const initialize = JSON.parse(harness.writes[0] ?? "{}") as { id?: number }; harness.send({ id: initialize.id, - result: { userAgent: "openclaw/0.146.0 (macOS; test)" }, + result: { userAgent: "openclaw/0.146.1 (macOS; test)" }, }); await vi.waitFor(() => expect(harness.writes.length).toBeGreaterThanOrEqual(3)); const list = JSON.parse(harness.writes[2] ?? "{}") as { id?: number; method?: string }; @@ -232,7 +232,7 @@ describe("listCodexAppServerModels", () => { const initialize = JSON.parse(harness.writes[0] ?? "{}") as { id?: number }; harness.send({ id: initialize.id, - result: { userAgent: "openclaw/0.146.0 (macOS; test)" }, + result: { userAgent: "openclaw/0.146.1 (macOS; test)" }, }); await vi.waitFor(() => expect(harness.writes.length).toBeGreaterThanOrEqual(3)); const firstList = JSON.parse(harness.writes[2] ?? "{}") as { @@ -312,7 +312,7 @@ describe("listCodexAppServerModels", () => { const initialize = JSON.parse(harness.writes[0] ?? "{}") as { id?: number }; harness.send({ id: initialize.id, - result: { userAgent: "openclaw/0.146.0 (macOS; test)" }, + result: { userAgent: "openclaw/0.146.1 (macOS; test)" }, }); await vi.waitFor(() => expect(harness.writes.length).toBeGreaterThanOrEqual(3)); const firstList = JSON.parse(harness.writes[2] ?? "{}") as { id?: number }; diff --git a/extensions/codex/src/app-server/protocol-generated/json/v2/CodexAppServerProtocolDefinitions.json b/extensions/codex/src/app-server/protocol-generated/json/v2/CodexAppServerProtocolDefinitions.json index fb5946a2400c..4e36b384d392 100644 --- a/extensions/codex/src/app-server/protocol-generated/json/v2/CodexAppServerProtocolDefinitions.json +++ b/extensions/codex/src/app-server/protocol-generated/json/v2/CodexAppServerProtocolDefinitions.json @@ -846,6 +846,13 @@ "model": { "type": "string" }, + "modelSpecialty": { + "default": null, + "type": [ + "string", + "null" + ] + }, "serviceTiers": { "default": [], "items": { diff --git a/extensions/codex/src/app-server/run-attempt-test-harness.ts b/extensions/codex/src/app-server/run-attempt-test-harness.ts index 05ef6a1a6581..20d5666bc6ac 100644 --- a/extensions/codex/src/app-server/run-attempt-test-harness.ts +++ b/extensions/codex/src/app-server/run-attempt-test-harness.ts @@ -336,7 +336,7 @@ export function threadStartResult(threadId = "thread-1") { status: { type: "idle" }, path: null, cwd: tempDir || "/tmp/openclaw-codex-test", - cliVersion: "0.146.0", + cliVersion: "0.146.1", source: "unknown", agentNickname: null, agentRole: null, diff --git a/extensions/codex/src/app-server/run-attempt-thread-cleanup.test.ts b/extensions/codex/src/app-server/run-attempt-thread-cleanup.test.ts index 7be99beab6b7..c83d01bd1c97 100644 --- a/extensions/codex/src/app-server/run-attempt-thread-cleanup.test.ts +++ b/extensions/codex/src/app-server/run-attempt-thread-cleanup.test.ts @@ -106,7 +106,7 @@ function threadStartResult(threadId = "thread-1") { status: { type: "idle" }, path: null, cwd: tempDir || "/tmp/openclaw-codex-test", - cliVersion: "0.146.0", + cliVersion: "0.146.1", source: "unknown", agentNickname: null, agentRole: null, diff --git a/extensions/codex/src/app-server/run-attempt.context-engine.test.ts b/extensions/codex/src/app-server/run-attempt.context-engine.test.ts index 0ff2980de71d..0d04cae007f5 100644 --- a/extensions/codex/src/app-server/run-attempt.context-engine.test.ts +++ b/extensions/codex/src/app-server/run-attempt.context-engine.test.ts @@ -233,7 +233,7 @@ function threadStartResult(threadId = "thread-1") { status: { type: "idle" }, path: null, cwd: tempDir || "/tmp/openclaw-codex-test", - cliVersion: "0.146.0", + cliVersion: "0.146.1", source: "unknown", agentNickname: null, agentRole: null, diff --git a/extensions/codex/src/app-server/schema-normalization-runtime-contract.test.ts b/extensions/codex/src/app-server/schema-normalization-runtime-contract.test.ts index 9094bc8dca7e..5f7cfa848a0b 100644 --- a/extensions/codex/src/app-server/schema-normalization-runtime-contract.test.ts +++ b/extensions/codex/src/app-server/schema-normalization-runtime-contract.test.ts @@ -76,7 +76,7 @@ function threadStartResult(threadId = "thread-1", serviceTier: string | null = n status: { type: "idle" }, path: null, cwd: tempDir, - cliVersion: "0.146.0", + cliVersion: "0.146.1", source: "unknown", agentNickname: null, agentRole: null, diff --git a/extensions/codex/src/app-server/shared-client.test.ts b/extensions/codex/src/app-server/shared-client.test.ts index 1b18040e7518..25606e6c2e8e 100644 --- a/extensions/codex/src/app-server/shared-client.test.ts +++ b/extensions/codex/src/app-server/shared-client.test.ts @@ -326,7 +326,7 @@ describe("shared Codex app-server client", () => { const options = { config, startOptions, timeoutMs: 1_000 }; const firstAcquire = getLeasedSharedCodexAppServerClient(options); - await sendInitializeResult(first, "openclaw/0.146.0 (Linux; test)"); + await sendInitializeResult(first, "openclaw/0.146.1 (Linux; test)"); await expect(firstAcquire).resolves.toBe(first.client); expect(releaseLeasedSharedCodexAppServerClient(first.client)).toBe(true); expect(mocks.resolveCodexAppServerAuthProfileStore).toHaveBeenCalledOnce(); @@ -346,7 +346,7 @@ describe("shared Codex app-server client", () => { expect(clearSharedCodexAppServerClientIfCurrent(first.client)).toBe(true); const replacementAcquire = getLeasedSharedCodexAppServerClient(options); - await sendInitializeResult(replacement, "openclaw/0.146.0 (Linux; test)"); + await sendInitializeResult(replacement, "openclaw/0.146.1 (Linux; test)"); await expect(replacementAcquire).resolves.toBe(replacement.client); expect(releaseLeasedSharedCodexAppServerClient(replacement.client)).toBe(true); expect(mocks.resolveCodexAppServerAuthProfileStore).toHaveBeenCalledTimes(3); @@ -397,7 +397,7 @@ describe("shared Codex app-server client", () => { await expect(first).rejects.toThrow("codex app-server initialize aborted"); expect(harness.stdinDestroyed).toBe(false); - await sendInitializeResult(harness, "openclaw/0.146.0 (Linux; test)"); + await sendInitializeResult(harness, "openclaw/0.146.1 (Linux; test)"); await expect(second).resolves.toBe(harness.client); expect(releaseLeasedSharedCodexAppServerClient(harness.client)).toBe(true); }); @@ -406,7 +406,7 @@ describe("shared Codex app-server client", () => { const harness = createClientHarness(); vi.spyOn(CodexAppServerClient, "start").mockReturnValue(harness.client); const acquire = getLeasedSharedCodexAppServerClient({ timeoutMs: 1_000 }); - await sendInitializeResult(harness, "openclaw/0.146.0 (Linux; test)"); + await sendInitializeResult(harness, "openclaw/0.146.1 (Linux; test)"); const client = await acquire; const retained = retainSharedCodexAppServerClientByInstanceId(client.getInstanceId()); @@ -420,7 +420,7 @@ describe("shared Codex app-server client", () => { vi.spyOn(CodexAppServerClient, "start").mockReturnValue(harness.client); const options = { timeoutMs: 1_000 }; const firstLease = getLeasedSharedCodexAppServerClient(options); - await sendInitializeResult(harness, "openclaw/0.146.0 (Linux; test)"); + await sendInitializeResult(harness, "openclaw/0.146.1 (Linux; test)"); const client = await firstLease; await expect(getLeasedSharedCodexAppServerClient(options)).resolves.toBe(client); const ownedLease = { client }; @@ -464,7 +464,7 @@ describe("shared Codex app-server client", () => { const listPromise = listCodexAppServerModels({ timeoutMs: 1000 }); await sendInitializeResult(desktop, "openclaw/0.124.9 (macOS; test)"); - await sendInitializeResult(pluginLocal, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(pluginLocal, "openclaw/0.146.1 (macOS; test)"); await sendEmptyModelList(pluginLocal); await expect(listPromise).resolves.toEqual({ models: [] }); @@ -502,13 +502,13 @@ describe("shared Codex app-server client", () => { }; const normalPromise = getLeasedSharedCodexAppServerClient({ startOptions }); - await sendInitializeResult(normal, "openclaw/0.146.0 (Linux; test)"); + await sendInitializeResult(normal, "openclaw/0.146.1 (Linux; test)"); const normalClient = await normalPromise; const capturedPromise = getLeasedSharedCodexAppServerClient({ startOptions, runtimeArtifactMode: "capture", }); - await sendInitializeResult(captured, "openclaw/0.146.0 (Linux; test)"); + await sendInitializeResult(captured, "openclaw/0.146.1 (Linux; test)"); const capturedClient = await capturedPromise; expect(capturedClient).not.toBe(normalClient); @@ -560,7 +560,7 @@ describe("shared Codex app-server client", () => { runtimeArtifactMode: "capture", }); await sendInitializeResult(desktop, "openclaw/0.124.9 (macOS; test)"); - await sendInitializeResult(fallback, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(fallback, "openclaw/0.146.1 (macOS; test)"); const client = await acquire; const { readCodexAppServerClientRuntimeArtifact, validateCodexAppServerRuntimeArtifact } = await import("./runtime-artifact.js"); @@ -623,7 +623,7 @@ describe("shared Codex app-server client", () => { startOptions, agentDir, }); - await sendInitializeResult(harness, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(harness, "openclaw/0.146.1 (macOS; test)"); const client = await clientPromise; expect(readCodexAppServerClientProcessIdentity(client)).toEqual({ @@ -632,8 +632,8 @@ describe("shared Codex app-server client", () => { argsFingerprint: expect.stringMatching(/^[a-f0-9]{64}$/), commandSource: "resolved-managed", nativeCommand: "/cache/openclaw/codex.native", - serverVersion: "0.146.0", - userAgent: "openclaw/0.146.0 (macOS; test)", + serverVersion: "0.146.1", + userAgent: "openclaw/0.146.1 (macOS; test)", }); expect(() => @@ -717,7 +717,7 @@ describe("shared Codex app-server client", () => { }; const clientPromise = createIsolatedCodexAppServerClient({ startOptions, agentDir }); - await sendInitializeResult(harness, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(harness, "openclaw/0.146.1 (macOS; test)"); const client = await clientPromise; const fenceKey = resolveCodexNativeConfigFenceKey({ client }); expect(fenceKey).toBeTypeOf("string"); @@ -773,7 +773,7 @@ describe("shared Codex app-server client", () => { expect(first.process.stdin.destroyed).toBe(true); const secondList = listCodexAppServerModels({ timeoutMs: 1000 }); - await sendInitializeResult(second, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(second, "openclaw/0.146.1 (macOS; test)"); await sendEmptyModelList(second); await expect(secondList).resolves.toEqual({ models: [] }); @@ -806,7 +806,7 @@ describe("shared Codex app-server client", () => { await expect(shortAcquire).rejects.toThrow("codex app-server initialize timed out"); expect(harness.process.stdin.destroyed).toBe(false); - await sendInitializeResult(harness, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(harness, "openclaw/0.146.1 (macOS; test)"); await expect(longAcquire).resolves.toBe(harness.client); expect(startSpy).toHaveBeenCalledTimes(1); @@ -819,7 +819,7 @@ describe("shared Codex app-server client", () => { const releaseAuth = deferNextAuthProfileApplication(); const acquire = getSharedCodexAppServerClient({ timeoutMs: 100 }); - await sendInitializeResult(harness, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(harness, "openclaw/0.146.1 (macOS; test)"); await expect(acquire).rejects.toThrow("codex app-server authentication timed out"); expect(harness.process.stdin.destroyed).toBe(true); @@ -833,7 +833,7 @@ describe("shared Codex app-server client", () => { const shortAcquire = getSharedCodexAppServerClient({ timeoutMs: 100 }); const longAcquire = getSharedCodexAppServerClient({ timeoutMs: 1000 }); - await sendInitializeResult(harness, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(harness, "openclaw/0.146.1 (macOS; test)"); await expect(shortAcquire).rejects.toThrow("codex app-server authentication timed out"); expect(harness.process.stdin.destroyed).toBe(false); @@ -862,7 +862,7 @@ describe("shared Codex app-server client", () => { abandonController.abort(); expect(harness.process.stdin.destroyed).toBe(false); - await sendInitializeResult(harness, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(harness, "openclaw/0.146.1 (macOS; test)"); await abandonedRejection; await expect(activeAcquire).resolves.toBe(harness.client); @@ -908,7 +908,7 @@ describe("shared Codex app-server client", () => { const rejection = expect(clientPromise).rejects.toThrow( "codex app-server initialize timed out", ); - await sendInitializeResult(harness, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(harness, "openclaw/0.146.1 (macOS; test)"); await rejection; expect(harness.process.stdin.destroyed).toBe(true); @@ -924,7 +924,7 @@ describe("shared Codex app-server client", () => { const clientPromise = createIsolatedCodexAppServerClient({ timeoutMs: 100 }); await vi.waitFor(() => expect(harness.writes.length).toBeGreaterThanOrEqual(1)); now = 101; - await sendInitializeResult(harness, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(harness, "openclaw/0.146.1 (macOS; test)"); await expect(clientPromise).rejects.toThrow("codex app-server initialize timed out"); expect(mocks.applyCodexAppServerAuthProfile).not.toHaveBeenCalled(); @@ -939,7 +939,7 @@ describe("shared Codex app-server client", () => { timeoutMs: 1000, authProfileId: "openai:work", }); - await sendInitializeResult(harness, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(harness, "openclaw/0.146.1 (macOS; test)"); await sendEmptyModelList(harness); await expect(listPromise).resolves.toEqual({ models: [] }); @@ -966,7 +966,7 @@ describe("shared Codex app-server client", () => { timeoutMs: 1000, authProfileStore, }); - await sendInitializeResult(harness, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(harness, "openclaw/0.146.1 (macOS; test)"); await expect(clientPromise).resolves.toBe(harness.client); expect(mocks.resolveCodexAppServerAuthProfileStore).toHaveBeenCalledWith({ @@ -1025,7 +1025,7 @@ describe("shared Codex app-server client", () => { store: authProfileStore, }, }); - await sendInitializeResult(harness, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(harness, "openclaw/0.146.1 (macOS; test)"); await expect(clientPromise).resolves.toBe(harness.client); expect(mocks.resolveCodexAppServerAuthProfileStore).not.toHaveBeenCalled(); @@ -1119,7 +1119,7 @@ describe("shared Codex app-server client", () => { timeoutMs: 1000, preparedAuth: { kind: "profile", profileId: "openai:scoped", store: firstStore }, }); - await sendInitializeResult(firstHarness, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(firstHarness, "openclaw/0.146.1 (macOS; test)"); await expect(firstPromise).resolves.toBe(firstHarness.client); const secondPromise = getSharedCodexAppServerClient({ @@ -1127,7 +1127,7 @@ describe("shared Codex app-server client", () => { preparedAuth: { kind: "profile", profileId: "openai:scoped", store: secondStore }, }); await vi.waitFor(() => expect(startSpy).toHaveBeenCalledTimes(2)); - await sendInitializeResult(secondHarness, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(secondHarness, "openclaw/0.146.1 (macOS; test)"); await expect(secondPromise).resolves.toBe(secondHarness.client); expect(resolvedCacheKeys).toEqual(["account:sha256:first", "account:sha256:second"]); @@ -1163,7 +1163,7 @@ describe("shared Codex app-server client", () => { timeoutMs: 1000, preparedAuth: { kind: "api-key", apiKey: "platform-key" }, }); - await sendInitializeResult(harness, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(harness, "openclaw/0.146.1 (macOS; test)"); await expect(clientPromise).resolves.toBe(harness.client); expect(mocks.resolveCodexAppServerAuthProfileStore).not.toHaveBeenCalled(); @@ -1212,7 +1212,7 @@ describe("shared Codex app-server client", () => { timeoutMs: 1000, preparedAuth: { kind: "api-key", apiKey: "first-platform-key" }, }); - await sendInitializeResult(firstHarness, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(firstHarness, "openclaw/0.146.1 (macOS; test)"); await expect(firstPromise).resolves.toBe(firstHarness.client); const secondPromise = getSharedCodexAppServerClient({ @@ -1220,7 +1220,7 @@ describe("shared Codex app-server client", () => { preparedAuth: { kind: "api-key", apiKey: "second-platform-key" }, }); await vi.waitFor(() => expect(startSpy).toHaveBeenCalledTimes(2)); - await sendInitializeResult(secondHarness, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(secondHarness, "openclaw/0.146.1 (macOS; test)"); await expect(secondPromise).resolves.toBe(secondHarness.client); expect(cacheKeys).toEqual(["api_key:sha256:first", "api_key:sha256:second"]); @@ -1248,7 +1248,7 @@ describe("shared Codex app-server client", () => { authProfileId: "openai:persisted", agentDir: "/tmp/openclaw-persisted-agent", }); - await sendInitializeResult(harness, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(harness, "openclaw/0.146.1 (macOS; test)"); await expect(clientPromise).resolves.toBe(harness.client); const priorWriteCount = harness.writes.length; @@ -1286,7 +1286,7 @@ describe("shared Codex app-server client", () => { agentId: "research", config, }); - await sendInitializeResult(harness, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(harness, "openclaw/0.146.1 (macOS; test)"); await expect(clientPromise).resolves.toBe(harness.client); expect(mocks.resolveCodexAppServerAuthProfileIdForAgent).not.toHaveBeenCalled(); @@ -1316,7 +1316,7 @@ describe("shared Codex app-server client", () => { headers: {}, }, }); - await sendInitializeResult(harness, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(harness, "openclaw/0.146.1 (macOS; test)"); await expect(clientPromise).resolves.toBe(harness.client); expect(mocks.resolveCodexAppServerAuthProfileIdForAgent).not.toHaveBeenCalled(); @@ -1334,7 +1334,7 @@ describe("shared Codex app-server client", () => { timeoutMs: 1000, config, }); - await sendInitializeResult(harness, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(harness, "openclaw/0.146.1 (macOS; test)"); await sendEmptyModelList(harness); await expect(listPromise).resolves.toEqual({ models: [] }); @@ -1361,7 +1361,7 @@ describe("shared Codex app-server client", () => { authProfileId: "openai:work", agentDir: "/tmp/openclaw-agent-nova", }); - await sendInitializeResult(harness, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(harness, "openclaw/0.146.1 (macOS; test)"); await sendEmptyModelList(harness); await expect(listPromise).resolves.toEqual({ models: [] }); @@ -1385,7 +1385,7 @@ describe("shared Codex app-server client", () => { timeoutMs: 1000, agentDir: "/tmp/openclaw-agent-one", }); - await sendInitializeResult(first, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(first, "openclaw/0.146.1 (macOS; test)"); await sendEmptyModelList(first); await expect(firstList).resolves.toEqual({ models: [] }); @@ -1393,7 +1393,7 @@ describe("shared Codex app-server client", () => { timeoutMs: 1000, agentDir: "/tmp/openclaw-agent-two", }); - await sendInitializeResult(second, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(second, "openclaw/0.146.1 (macOS; test)"); await sendEmptyModelList(second); await expect(secondList).resolves.toEqual({ models: [] }); @@ -1412,7 +1412,7 @@ describe("shared Codex app-server client", () => { })); const listPromise = listCodexAppServerModels({ timeoutMs: 1000 }); - await sendInitializeResult(harness, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(harness, "openclaw/0.146.1 (macOS; test)"); await sendEmptyModelList(harness); await expect(listPromise).resolves.toEqual({ models: [] }); @@ -1477,7 +1477,7 @@ describe("shared Codex app-server client", () => { headers: {}, }, }); - await sendInitializeResult(first, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(first, "openclaw/0.146.1 (macOS; test)"); await sendEmptyModelList(first); await expect(firstList).resolves.toEqual({ models: [] }); @@ -1492,7 +1492,7 @@ describe("shared Codex app-server client", () => { headers: {}, }, }); - await sendInitializeResult(second, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(second, "openclaw/0.146.1 (macOS; test)"); await sendEmptyModelList(second); await expect(secondList).resolves.toEqual({ models: [] }); @@ -1515,7 +1515,7 @@ describe("shared Codex app-server client", () => { timeoutMs: 1000, authRequirement: "api-key", }); - await sendInitializeResult(first, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(first, "openclaw/0.146.1 (macOS; test)"); await sendEmptyModelList(first); await expect(firstList).resolves.toEqual({ models: [] }); @@ -1523,7 +1523,7 @@ describe("shared Codex app-server client", () => { timeoutMs: 1000, authRequirement: "api-key", }); - await sendInitializeResult(second, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(second, "openclaw/0.146.1 (macOS; test)"); await sendEmptyModelList(second); await expect(secondList).resolves.toEqual({ models: [] }); @@ -1545,7 +1545,7 @@ describe("shared Codex app-server client", () => { authProfileId: "openai:work", authRequirement: "api-key", }); - await sendInitializeResult(first, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(first, "openclaw/0.146.1 (macOS; test)"); await sendEmptyModelList(first); await expect(firstList).resolves.toEqual({ models: [] }); @@ -1554,7 +1554,7 @@ describe("shared Codex app-server client", () => { authProfileId: "openai:work", authRequirement: "subscription", }); - await sendInitializeResult(second, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(second, "openclaw/0.146.1 (macOS; test)"); await sendEmptyModelList(second); await expect(secondList).resolves.toEqual({ models: [] }); @@ -1609,7 +1609,7 @@ describe("shared Codex app-server client", () => { }); await vi.waitFor(() => expect(second.writes.length).toBeGreaterThanOrEqual(1)); - await sendInitializeResult(second, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(second, "openclaw/0.146.1 (macOS; test)"); await sendEmptyModelList(second); await expect(secondList).resolves.toEqual({ models: [] }); @@ -1627,7 +1627,7 @@ describe("shared Codex app-server client", () => { .mockReturnValueOnce(second.client); const firstList = listCodexAppServerModels({ timeoutMs: 1000 }); - await sendInitializeResult(first, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(first, "openclaw/0.146.1 (macOS; test)"); await sendEmptyModelList(first); await expect(firstList).resolves.toEqual({ models: [] }); @@ -1635,7 +1635,7 @@ describe("shared Codex app-server client", () => { expect(first.process.stdin.destroyed).toBe(true); const secondList = listCodexAppServerModels({ timeoutMs: 1000 }); - await sendInitializeResult(second, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(second, "openclaw/0.146.1 (macOS; test)"); await sendEmptyModelList(second); await expect(secondList).resolves.toEqual({ models: [] }); @@ -1653,7 +1653,7 @@ describe("shared Codex app-server client", () => { .mockReturnValueOnce(second.client); const firstList = listCodexAppServerModels({ timeoutMs: 1000 }); - await sendInitializeResult(first, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(first, "openclaw/0.146.1 (macOS; test)"); await sendEmptyModelList(first); await expect(firstList).resolves.toEqual({ models: [] }); @@ -1672,7 +1672,7 @@ describe("shared Codex app-server client", () => { await expect(activeRequest).rejects.toThrow("codex app-server client is closed"); const secondList = listCodexAppServerModels({ timeoutMs: 1000 }); - await sendInitializeResult(second, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(second, "openclaw/0.146.1 (macOS; test)"); await sendEmptyModelList(second); await expect(secondList).resolves.toEqual({ models: [] }); @@ -1692,7 +1692,7 @@ describe("shared Codex app-server client", () => { vi.spyOn(CodexAppServerClient, "start").mockReturnValueOnce(harness.client); const clientPromise = getLeasedSharedCodexAppServerClient({ timeoutMs: 1000 }); - await sendInitializeResult(harness, "openclaw/0.146.0 (Linux; test)"); + await sendInitializeResult(harness, "openclaw/0.146.1 (Linux; test)"); const client = await clientPromise; const deliverCompletion = vi.fn(async () => ({ delivered: true, path: "direct" as const })); const taskRuntime = { @@ -1787,7 +1787,7 @@ describe("shared Codex app-server client", () => { const firstLease = getLeasedSharedCodexAppServerClient({ timeoutMs: 1000 }); const secondLease = getLeasedSharedCodexAppServerClient({ timeoutMs: 1000 }); - await sendInitializeResult(first, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(first, "openclaw/0.146.1 (macOS; test)"); await expect(firstLease).resolves.toBe(first.client); await expect(secondLease).resolves.toBe(first.client); @@ -1821,7 +1821,7 @@ describe("shared Codex app-server client", () => { const completedRunLease = getLeasedSharedCodexAppServerClient({ timeoutMs: 1000 }); const siblingRunLease = getLeasedSharedCodexAppServerClient({ timeoutMs: 1000 }); - await sendInitializeResult(first, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(first, "openclaw/0.146.1 (macOS; test)"); await expect(completedRunLease).resolves.toBe(first.client); await expect(siblingRunLease).resolves.toBe(first.client); @@ -1870,7 +1870,7 @@ describe("shared Codex app-server client", () => { await expect(pendingLease).rejects.toThrow("codex app-server client is closed"); const freshLease = getLeasedSharedCodexAppServerClient({ timeoutMs: 1000 }); - await sendInitializeResult(second, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(second, "openclaw/0.146.1 (macOS; test)"); await expect(freshLease).resolves.toBe(second.client); expect(second.process.stdin.destroyed).toBe(false); }); @@ -1880,7 +1880,7 @@ describe("shared Codex app-server client", () => { vi.spyOn(CodexAppServerClient, "start").mockReturnValueOnce(first.client); const lease = getLeasedSharedCodexAppServerClient({ timeoutMs: 1000 }); - await sendInitializeResult(first, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(first, "openclaw/0.146.1 (macOS; test)"); await expect(lease).resolves.toBe(first.client); // Routine cleanup detaches gracefully; a later terminal-idle kill must @@ -1906,7 +1906,7 @@ describe("shared Codex app-server client", () => { vi.spyOn(CodexAppServerClient, "start").mockReturnValueOnce(first.client); const lease = getLeasedSharedCodexAppServerClient({ timeoutMs: 1000 }); - await sendInitializeResult(first, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(first, "openclaw/0.146.1 (macOS; test)"); await expect(lease).resolves.toBe(first.client); // Routine cleanup (e.g. one-shot bundle-MCP) must not yank a healthy @@ -1934,7 +1934,7 @@ describe("shared Codex app-server client", () => { timeoutMs: 1000, agentDir: "/tmp/openclaw-agent-one", }); - await sendInitializeResult(first, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(first, "openclaw/0.146.1 (macOS; test)"); await sendEmptyModelList(first); await expect(firstList).resolves.toEqual({ models: [] }); @@ -1942,7 +1942,7 @@ describe("shared Codex app-server client", () => { timeoutMs: 1000, agentDir: "/tmp/openclaw-agent-two", }); - await sendInitializeResult(second, "openclaw/0.146.0 (macOS; test)"); + await sendInitializeResult(second, "openclaw/0.146.1 (macOS; test)"); await sendEmptyModelList(second); await expect(secondList).resolves.toEqual({ models: [] }); @@ -1968,7 +1968,7 @@ describe("shared Codex app-server client", () => { const message = JSON.parse(rawDataToText(data)) as { id?: number; method?: string }; if (message.method === "initialize") { socket.send( - JSON.stringify({ id: message.id, result: { userAgent: "openclaw/0.146.0" } }), + JSON.stringify({ id: message.id, result: { userAgent: "openclaw/0.146.1" } }), ); return; } diff --git a/extensions/codex/src/app-server/side-question.test.ts b/extensions/codex/src/app-server/side-question.test.ts index cca69d6d06cd..b392c97b2e92 100644 --- a/extensions/codex/src/app-server/side-question.test.ts +++ b/extensions/codex/src/app-server/side-question.test.ts @@ -288,7 +288,7 @@ function threadResult(threadId: string) { status: { type: "idle" }, path: null, cwd: "/tmp/workspace", - cliVersion: "0.146.0", + cliVersion: "0.146.1", source: "unknown", agentNickname: null, agentRole: null, diff --git a/extensions/codex/src/app-server/thread-lifecycle.test.ts b/extensions/codex/src/app-server/thread-lifecycle.test.ts index 11f89880e239..52ee6d093a65 100644 --- a/extensions/codex/src/app-server/thread-lifecycle.test.ts +++ b/extensions/codex/src/app-server/thread-lifecycle.test.ts @@ -549,7 +549,7 @@ function threadStartResult(threadId = "thread-1") { status: { type: "idle" }, path: null, cwd: tempDir, - cliVersion: "0.146.0", + cliVersion: "0.146.1", source: "unknown", agentNickname: null, agentRole: null, diff --git a/extensions/codex/src/app-server/thread-lifecycle.user-mcp-servers.test.ts b/extensions/codex/src/app-server/thread-lifecycle.user-mcp-servers.test.ts index 175a837c2f0d..b0b43fdfdf89 100644 --- a/extensions/codex/src/app-server/thread-lifecycle.user-mcp-servers.test.ts +++ b/extensions/codex/src/app-server/thread-lifecycle.user-mcp-servers.test.ts @@ -36,7 +36,7 @@ function threadStartResult(threadId = "thread-1"): Record { status: { type: "idle" }, path: null, cwd: "/tmp", - cliVersion: "0.146.0", + cliVersion: "0.146.1", source: "unknown", agentNickname: null, agentRole: null, diff --git a/extensions/codex/src/app-server/transport-websocket.test.ts b/extensions/codex/src/app-server/transport-websocket.test.ts index b30b90bc8030..f29838ff426c 100644 --- a/extensions/codex/src/app-server/transport-websocket.test.ts +++ b/extensions/codex/src/app-server/transport-websocket.test.ts @@ -55,7 +55,7 @@ describe("Codex app-server websocket transport", () => { const message = JSON.parse(rawDataToText(data)) as { id?: number; method?: string }; if (message.method === "initialize") { socket.send( - JSON.stringify({ id: message.id, result: { userAgent: "openclaw/0.146.0" } }), + JSON.stringify({ id: message.id, result: { userAgent: "openclaw/0.146.1" } }), ); return; } diff --git a/extensions/codex/src/app-server/upstream-session-fork.test.ts b/extensions/codex/src/app-server/upstream-session-fork.test.ts index ec2ae994d79f..a977802ec279 100644 --- a/extensions/codex/src/app-server/upstream-session-fork.test.ts +++ b/extensions/codex/src/app-server/upstream-session-fork.test.ts @@ -79,7 +79,7 @@ function forkResponse(threadId = "thread-forked") { thread: { id: threadId, sessionId: "session-forked", - cliVersion: "0.146.0", + cliVersion: "0.146.1", createdAt: 1715299200, updatedAt: 1715299200, cwd: "/tmp", diff --git a/extensions/codex/src/app-server/version.ts b/extensions/codex/src/app-server/version.ts index 8efdff6735bb..ee6034350609 100644 --- a/extensions/codex/src/app-server/version.ts +++ b/extensions/codex/src/app-server/version.ts @@ -2,6 +2,6 @@ * Version and package pins for the managed Codex app-server runtime. */ /** Exact Codex app-server version shipped and supported by the OpenClaw Codex bridge. */ -export const CODEX_APP_SERVER_VERSION = "0.146.0"; +export const CODEX_APP_SERVER_VERSION = "0.146.1"; /** npm package name for the managed Codex app-server binary. */ export const MANAGED_CODEX_APP_SERVER_PACKAGE = "@openai/codex"; diff --git a/extensions/codex/src/conversation-binding.test.ts b/extensions/codex/src/conversation-binding.test.ts index cd447da9dce5..8261a7f3a796 100644 --- a/extensions/codex/src/conversation-binding.test.ts +++ b/extensions/codex/src/conversation-binding.test.ts @@ -242,7 +242,7 @@ function conversationThreadStartResult(threadId: string) { status: { type: "idle" }, path: null, cwd: tempDir, - cliVersion: "0.146.0", + cliVersion: "0.146.1", source: "unknown", agentNickname: null, agentRole: null, diff --git a/extensions/codex/src/web-search-provider.test.ts b/extensions/codex/src/web-search-provider.test.ts index 4dcb1649f785..43b899511148 100644 --- a/extensions/codex/src/web-search-provider.test.ts +++ b/extensions/codex/src/web-search-provider.test.ts @@ -48,7 +48,7 @@ function threadStartResult() { status: { type: "idle" }, path: null, cwd: "/tmp/openclaw-agent", - cliVersion: "0.146.0", + cliVersion: "0.146.1", source: "unknown", agentNickname: null, agentRole: null, diff --git a/extensions/openai/openai-provider.ts b/extensions/openai/openai-provider.ts index 53f295d898aa..9dc763d4ecc5 100644 --- a/extensions/openai/openai-provider.ts +++ b/extensions/openai/openai-provider.ts @@ -84,7 +84,7 @@ function classifyOpenAiFailoverCode(code: string | undefined) { const OPENAI_MODELS_ENDPOINT = "https://api.openai.com/v1/models"; // Keep synchronized with extensions/codex's exact @openai/codex dependency; // the provider contract test fails when that managed-runtime pin changes. -const OPENAI_CODEX_CLIENT_VERSION = "0.146.0"; +const OPENAI_CODEX_CLIENT_VERSION = "0.146.1"; const OPENAI_CODEX_MODELS_ENDPOINT = `${OPENAI_CODEX_RESPONSES_BASE_URL}/models?client_version=${OPENAI_CODEX_CLIENT_VERSION}`; const OPENAI_MODELS_CACHE_TTL_MS = 60_000; const OPENAI_CODEX_MODELS_CACHE_TTL_MS = 60_000; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a337904e280b..70f094068dcf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,7 +5,7 @@ settings: excludeLinksFromLockfile: false overrides: - '@agentclientprotocol/codex-acp@1.1.7>@openai/codex': 0.146.0 + '@agentclientprotocol/codex-acp@1.1.7>@openai/codex': 0.146.1 '@anthropic-ai/sdk': 0.115.0 '@opentelemetry/core': 2.10.0 '@opentelemetry/propagator-jaeger': 2.10.0 @@ -637,8 +637,8 @@ importers: extensions/codex: dependencies: '@openai/codex': - specifier: 0.146.0 - version: 0.146.0 + specifier: 0.146.1 + version: 0.146.1 smol-toml: specifier: 1.7.1 version: 1.7.1 @@ -4073,43 +4073,43 @@ packages: resolution: {integrity: sha512-3zcN5Q3yEmeyxXBzqB6fXPQFzYa2ROsGFSr69W0ArXIAGJqxl/aFECOVPD2kbkYPm0U/EHxFKgclK3UA9WQg5A==} engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0} - '@openai/codex@0.146.0': - resolution: {integrity: sha512-yG3sPWNda/2YAIQIDq9MrrjoCTIQ7rxYM5IasrG3VBcuhCLTkgeg/JzqmJq1V98RE4MJ5jCxDXXQlOjrditFRw==} + '@openai/codex@0.146.1': + resolution: {integrity: sha512-f51R56E/G15soLhf5l5pWUiM+mGHK0NdLozOtzjRoAa+bA20hgWrkyxE/fpwCnuGQM6XNdktHYtK9xQ7bPIbTA==} engines: {node: '>=16'} hasBin: true - '@openai/codex@0.146.0-darwin-arm64': - resolution: {integrity: sha512-nb61yX4r5L6Z0dlC4o3u0GAK1YCd4TUvjaB382bajDoh84V+uv2hTBIVZ++fgXWV9yoeuNrNnNcn7GoTGOe2Tg==} + '@openai/codex@0.146.1-darwin-arm64': + resolution: {integrity: sha512-zvXxiGRuKCOoFQyh7lRC2SHwomM2VNzHralyeP+i6fxLjQ5grpmnfJpnLs54+GkK7K5nEpkj7chqjlKbMELgZw==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] - '@openai/codex@0.146.0-darwin-x64': - resolution: {integrity: sha512-hTQR5jy/ObfTf1MDnuJCZJAe+SljKE8DDwQWN6lDFgjsPhMQz852U2tILt8Ei+G5GkQSzemHYKl2AYPwW0Y5xw==} + '@openai/codex@0.146.1-darwin-x64': + resolution: {integrity: sha512-XQbemMBWH37hVL2vkoP+t//QyUmMjDRksf8YHmhAzHmt2oTTo8xyzH76LLFqMPCNpTdG755T8ZCbkpM0X2NJwA==} engines: {node: '>=16'} cpu: [x64] os: [darwin] - '@openai/codex@0.146.0-linux-arm64': - resolution: {integrity: sha512-qiYDxkkEFnXG7joadJW6Q+XcgyDXCpGdpa9nk/c+i0gEomur1j7bHvx12NfWWCF/y8Tqri6ay+FLuC2MjdehtA==} + '@openai/codex@0.146.1-linux-arm64': + resolution: {integrity: sha512-2LhK2axFZKe6BbhlzGXCpVkSva1TikFYJIq6x7+xu0AdfmY855EV5lQ7lwFpjJfM5gAJqxcycttvE1ODoSoLaA==} engines: {node: '>=16'} cpu: [arm64] os: [linux] - '@openai/codex@0.146.0-linux-x64': - resolution: {integrity: sha512-fswvyGprAPCMiOEue/7MKMk7pCjh9kZIJfJX5i9atmfnmGYbYCcUhZsEH9LEP0+0t5xyPqDbfNXY7NSxIVuXxA==} + '@openai/codex@0.146.1-linux-x64': + resolution: {integrity: sha512-XPWpWzJgGK1ygsUBMXgskEkr+uTVj/XOnnCP2UE9tQUXTWYRYElz7QW1YS3bxkN6Kev4CJQKbdJopVwh+0E/TQ==} engines: {node: '>=16'} cpu: [x64] os: [linux] - '@openai/codex@0.146.0-win32-arm64': - resolution: {integrity: sha512-EW6zdjDe+SLX2Iw+xymJ5+Pz2+DGexdstfFHXh4Ub+TfJsQPiMjGfZfNaoWgdJ2FsqSIzVKu2+G0KCMGYz2W8g==} + '@openai/codex@0.146.1-win32-arm64': + resolution: {integrity: sha512-3UJf8sKefCbUgPPcgQRiCaKn9AsItuPl0ZL6erHWzT6UIemrdjt2WHiTNOw/7tVJRnUsG4A1LUrK2to9/SkwXA==} engines: {node: '>=16'} cpu: [arm64] os: [win32] - '@openai/codex@0.146.0-win32-x64': - resolution: {integrity: sha512-b3lxMYeR0+IhstNo4JjX1P9cPc1xwVcCVkPd1lD1wpWPJ0SBhpIkPczwbu3ZRkJcdyl342+rgyf4DUrbZLdrGA==} + '@openai/codex@0.146.1-win32-x64': + resolution: {integrity: sha512-FfiNJysKpHkJ08Kn+571r701dgoZVZjqNUxrEZ/JJyu5hIzNTs4XBllAX6ynHkF8G9NebPEtaJz72zxbol/JPg==} engines: {node: '>=16'} cpu: [x64] os: [win32] @@ -9505,7 +9505,7 @@ snapshots: '@agentclientprotocol/codex-acp@1.1.7': dependencies: '@agentclientprotocol/sdk': 1.3.0(zod@4.4.3) - '@openai/codex': 0.146.0 + '@openai/codex': 0.146.1 diff: 9.0.0 open: 11.0.0 vscode-jsonrpc: 9.0.1 @@ -11369,31 +11369,31 @@ snapshots: '@npmcli/redact@5.0.0': {} - '@openai/codex@0.146.0': + '@openai/codex@0.146.1': optionalDependencies: - '@openai/codex-darwin-arm64': '@openai/codex@0.146.0-darwin-arm64' - '@openai/codex-darwin-x64': '@openai/codex@0.146.0-darwin-x64' - '@openai/codex-linux-arm64': '@openai/codex@0.146.0-linux-arm64' - '@openai/codex-linux-x64': '@openai/codex@0.146.0-linux-x64' - '@openai/codex-win32-arm64': '@openai/codex@0.146.0-win32-arm64' - '@openai/codex-win32-x64': '@openai/codex@0.146.0-win32-x64' + '@openai/codex-darwin-arm64': '@openai/codex@0.146.1-darwin-arm64' + '@openai/codex-darwin-x64': '@openai/codex@0.146.1-darwin-x64' + '@openai/codex-linux-arm64': '@openai/codex@0.146.1-linux-arm64' + '@openai/codex-linux-x64': '@openai/codex@0.146.1-linux-x64' + '@openai/codex-win32-arm64': '@openai/codex@0.146.1-win32-arm64' + '@openai/codex-win32-x64': '@openai/codex@0.146.1-win32-x64' - '@openai/codex@0.146.0-darwin-arm64': + '@openai/codex@0.146.1-darwin-arm64': optional: true - '@openai/codex@0.146.0-darwin-x64': + '@openai/codex@0.146.1-darwin-x64': optional: true - '@openai/codex@0.146.0-linux-arm64': + '@openai/codex@0.146.1-linux-arm64': optional: true - '@openai/codex@0.146.0-linux-x64': + '@openai/codex@0.146.1-linux-x64': optional: true - '@openai/codex@0.146.0-win32-arm64': + '@openai/codex@0.146.1-win32-arm64': optional: true - '@openai/codex@0.146.0-win32-x64': + '@openai/codex@0.146.1-win32-x64': optional: true '@openclaw/crabline@0.1.11': diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 0eef0c002ec6..434e744d86d2 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -117,7 +117,7 @@ nodeLinker: hoisted blockExoticSubdeps: true overrides: - "@agentclientprotocol/codex-acp@1.1.7>@openai/codex": 0.146.0 + "@agentclientprotocol/codex-acp@1.1.7>@openai/codex": 0.146.1 "@anthropic-ai/sdk": 0.115.0 "@opentelemetry/core": 2.10.0 "@opentelemetry/propagator-jaeger": 2.10.0