fix(codex): update managed runtime to 0.150.1 (#130685)

* fix(codex): update managed runtime to 0.150.1

* test(codex): refresh newer runtime fixtures
This commit is contained in:
Vincent Koc
2026-08-27 13:31:46 +08:00
committed by GitHub
parent f8d4e4586d
commit c45cc17e05
15 changed files with 65 additions and 61 deletions
+1 -1
View File
@@ -277,7 +277,7 @@ reconciliation so OpenClaw does not override that selection.
## Remote marketplaces
Remote marketplace support was introduced in Codex 0.146.1 and remains
available in OpenClaw's pinned Codex 0.149.1. OpenClaw passes the opaque remote
available in OpenClaw's pinned Codex 0.150.1. 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.
+16 -12
View File
@@ -172,7 +172,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.149.1`):
with the official plugin (currently `@openai/codex` `0.150.1`):
```bash
codex app-server --listen stdio://
@@ -317,7 +317,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 manages stable Codex app-server `0.149.1`. Explicit custom
The plugin manages stable Codex app-server `0.150.1`. Explicit custom
executables, remote app-servers, and macOS desktop binaries must report a
parseable semantic version of `0.149.0` or newer. Older, malformed, and
unversioned handshakes are rejected. Newer versions log a compatibility warning
@@ -446,7 +446,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.149.1` app-server.
This preview path uses the pinned Codex `0.150.1` app-server.
```json5
{
@@ -771,17 +771,21 @@ response remains authoritative even if it contains no visible models; HTTP
`401` and `403` return an empty catalog rather than exposing fallback models.
<Note>
The current bundled harness is `@openai/codex` `0.149.1`. A live `model/list`
probe against the official `0.149.0` app-server returned these public picker
The current bundled harness is `@openai/codex` `0.150.1`. A live `model/list`
probe against the official `0.150.1` app-server returned these public picker
rows:
| Model id | Input modalities | Reasoning efforts |
| --------------- | ---------------- | ------------------------------------ |
| `gpt-5.6-sol` | text, image | low, medium, high, xhigh, max, ultra |
| `gpt-5.6-terra` | text, image | low, medium, high, xhigh, max, ultra |
| `gpt-5.6-luna` | text, image | low, medium, high, xhigh, max |
| `gpt-5.5` | text, image | low, medium, high, xhigh |
| `gpt-5.2` | text, image | low, medium, high, xhigh |
| Model id | Input modalities | Reasoning efforts |
| --------------- | ---------------- | ------------------------------- |
| `gpt-5.5` | text, image | low, medium, high, xhigh |
| `gpt-5.6` | text, image | low, medium, high, xhigh, ultra |
| `gpt-5.6-luna` | text, image | low, medium, high, xhigh, ultra |
| `gpt-5.6-terra` | text, image | low, medium, high, xhigh, ultra |
| `gpt-5.6-sol` | text, image | low, medium, high, xhigh, ultra |
| `gpt-5.4` | text, image | low, medium, high, xhigh |
| `gpt-5.4-mini` | text, image | low, medium, high, xhigh |
| `gpt-5.3-codex` | text, image | low, medium, high, xhigh |
| `gpt-5.2` | text, image | low, medium, high, xhigh |
Available model IDs, input modalities, and reasoning efforts remain
account-scoped. Run `/codex models` after starting or upgrading the gateway to
+2 -2
View File
@@ -91,8 +91,8 @@ channel is the communication surface.
- The official `@openclaw/codex` plugin installed. Include `codex` in
`plugins.allow` if your config uses an allowlist.
- Managed Codex app-server `0.149.1`. The plugin ships and manages
`@openai/codex` `0.149.1` by default, so a `codex` command on `PATH` does not
- Managed Codex app-server `0.150.1`. The plugin ships and manages
`@openai/codex` `0.150.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 a parseable semantic version of `0.149.0` or newer.
Newer versions continue with a compatibility warning and normal runtime
+1 -1
View File
@@ -23,7 +23,7 @@ working.
- `plugins.entries.codex.enabled` is `true`.
- `plugins.entries.codex.config.codexPlugins.enabled` is `true`.
- Codex app-server reports `0.149.0` or newer. The official plugin ships
`@openai/codex` `0.149.1`; newer custom, remote, and macOS desktop-owned
`@openai/codex` `0.150.1`; newer custom, remote, and macOS desktop-owned
binaries continue with a compatibility warning and normal runtime validation.
- The target Codex app-server can see the expected marketplace, plugin, and
app inventory.
+1 -1
View File
@@ -18,7 +18,7 @@ import type { CodexSessionCatalogControlFactory } from "./src/session-catalog-ty
// New runtime identity uses the `openai` provider.
const DEFAULT_CODEX_HARNESS_PROVIDER_IDS = new Set(["codex", "openai"]);
const SHARED_CODEX_APP_SERVER_CLIENT_DISPOSER = Symbol.for("openclaw.codexAppServerClientDisposer");
// Audited against @openai/codex 0.149.1 (rust-v0.149.1). These exact denies
// Audited against @openai/codex 0.150.1 (rust-v0.150.1). These exact denies
// either have no Codex-native equivalent or are enforced by the harness. Keep
// the list positive and conservative: an omitted tool isolates the native surface.
const CODEX_TOOL_POLICY_SAFE_DENY_NAMES = [
+1 -1
View File
@@ -8,7 +8,7 @@
},
"type": "module",
"dependencies": {
"@openai/codex": "0.149.1",
"@openai/codex": "0.150.1",
"semver": "7.8.5",
"smol-toml": "1.8.0",
"typebox": "1.3.16",
@@ -463,8 +463,8 @@ describe("CodexAppServerClient", () => {
it.each([
["0.149.0", 0],
["0.150.0-alpha.1", 1],
["0.150.0", 1],
["0.151.0-alpha.4", 1],
["0.151.0", 1],
["1.0.0", 1],
])("accepts app-server version %s for normal startup validation", async (version, warnings) => {
const warn = vi.spyOn(embeddedAgentLog, "warn").mockImplementation(() => undefined);
@@ -12,8 +12,8 @@
"CodexErrorInfo": {"description":"This translation layer make sure that we expose codex error code in camel case.\n\nWhen an upstream HTTP status is available (for example, from the Responses API or a provider), it is forwarded in `httpStatusCode` on the relevant `codexErrorInfo` variant.","oneOf":[{"additionalProperties":false,"properties":{"httpConnectionFailed":{"properties":{"httpStatusCode":{"format":"uint16","minimum":0,"type":["integer","null"]}},"type":"object"}},"required":["httpConnectionFailed"],"title":"HttpConnectionFailedCodexErrorInfo","type":"object"},{"additionalProperties":false,"description":"Failed to connect to the response SSE stream.","properties":{"responseStreamConnectionFailed":{"properties":{"httpStatusCode":{"format":"uint16","minimum":0,"type":["integer","null"]}},"type":"object"}},"required":["responseStreamConnectionFailed"],"title":"ResponseStreamConnectionFailedCodexErrorInfo","type":"object"},{"additionalProperties":false,"description":"The response SSE stream disconnected in the middle of a turn before completion.","properties":{"responseStreamDisconnected":{"properties":{"httpStatusCode":{"format":"uint16","minimum":0,"type":["integer","null"]}},"type":"object"}},"required":["responseStreamDisconnected"],"title":"ResponseStreamDisconnectedCodexErrorInfo","type":"object"},{"additionalProperties":false,"description":"Reached the retry limit for responses.","properties":{"responseTooManyFailedAttempts":{"properties":{"httpStatusCode":{"format":"uint16","minimum":0,"type":["integer","null"]}},"type":"object"}},"required":["responseTooManyFailedAttempts"],"title":"ResponseTooManyFailedAttemptsCodexErrorInfo","type":"object"},{"additionalProperties":false,"description":"Returned when `turn/start` or `turn/steer` is submitted while the current active turn cannot accept same-turn steering, for example `/review` or manual `/compact`.","properties":{"activeTurnNotSteerable":{"properties":{"turnKind":{"$ref":"#/definitions/NonSteerableTurnKind"}},"required":["turnKind"],"type":"object"}},"required":["activeTurnNotSteerable"],"title":"ActiveTurnNotSteerableCodexErrorInfo","type":"object"},{"enum":["contextWindowExceeded","sessionBudgetExceeded","usageLimitExceeded","serverOverloaded","cyberPolicy","misalignmentPolicyViolation","internalServerError","unauthorized","badRequest","threadRollbackFailed","sandboxError","other"],"type":"string"}]},
"CollabAgentState": {"properties":{"message":{"type":["string","null"]},"status":{"$ref":"#/definitions/CollabAgentStatus"}},"required":["status"],"type":"object"},
"CollabAgentStatus": {"enum":["pendingInit","running","interrupted","completed","errored","shutdown","notFound"],"type":"string"},
"CollabAgentTool": {"enum":["spawnAgent","sendInput","resumeAgent","wait","closeAgent"],"type":"string"},
"CollabAgentToolCallStatus": {"enum":["inProgress","completed","failed"],"type":"string"},
"CollabAgentTool": {"enum":["spawnAgent","sendInput","resumeAgent","wait","closeAgent","sendMessage","followupTask","interruptAgent","listAgents"],"type":"string"},
"CollabAgentToolCallStatus": {"enum":["inProgress","completed","failed","interrupted"],"type":"string"},
"CommandAction": {"oneOf":[{"properties":{"command":{"type":"string"},"name":{"type":"string"},"path":{"$ref":"#/definitions/LegacyAppPathString"},"type":{"enum":["read"],"title":"ReadCommandActionType","type":"string"}},"required":["command","name","path","type"],"title":"ReadCommandAction","type":"object"},{"properties":{"command":{"type":"string"},"path":{"type":["string","null"]},"type":{"enum":["listFiles"],"title":"ListFilesCommandActionType","type":"string"}},"required":["command","type"],"title":"ListFilesCommandAction","type":"object"},{"properties":{"command":{"type":"string"},"path":{"type":["string","null"]},"query":{"type":["string","null"]},"type":{"enum":["search"],"title":"SearchCommandActionType","type":"string"}},"required":["command","type"],"title":"SearchCommandAction","type":"object"},{"properties":{"command":{"type":"string"},"type":{"enum":["unknown"],"title":"UnknownCommandActionType","type":"string"}},"required":["command","type"],"title":"UnknownCommandAction","type":"object"}]},
"CommandExecutionSource": {"enum":["agent","userShell","unifiedExecStartup","unifiedExecInteraction"],"type":"string"},
"CommandExecutionStatus": {"enum":["inProgress","completed","failed","declined"],"type":"string"},
@@ -48,7 +48,7 @@
"ReasoningEffortOption": {"properties":{"description":{"type":"string"},"reasoningEffort":{"$ref":"#/definitions/ReasoningEffort"}},"required":["description","reasoningEffort"],"type":"object"},
"SandboxPolicy": {"oneOf":[{"properties":{"type":{"enum":["dangerFullAccess"],"title":"DangerFullAccessSandboxPolicyType","type":"string"}},"required":["type"],"title":"DangerFullAccessSandboxPolicy","type":"object"},{"properties":{"networkAccess":{"default":false,"type":"boolean"},"type":{"enum":["readOnly"],"title":"ReadOnlySandboxPolicyType","type":"string"}},"required":["type"],"title":"ReadOnlySandboxPolicy","type":"object"},{"properties":{"networkAccess":{"allOf":[{"$ref":"#/definitions/NetworkAccess"}],"default":"restricted"},"type":{"enum":["externalSandbox"],"title":"ExternalSandboxSandboxPolicyType","type":"string"}},"required":["type"],"title":"ExternalSandboxSandboxPolicy","type":"object"},{"properties":{"excludeSlashTmp":{"default":false,"type":"boolean"},"excludeTmpdirEnvVar":{"default":false,"type":"boolean"},"networkAccess":{"default":false,"type":"boolean"},"type":{"enum":["workspaceWrite"],"title":"WorkspaceWriteSandboxPolicyType","type":"string"},"writableRoots":{"default":[],"items":{"$ref":"#/definitions/AbsolutePathBuf"},"type":"array"}},"required":["type"],"title":"WorkspaceWriteSandboxPolicy","type":"object"}]},
"SessionSource": {"oneOf":[{"additionalProperties":false,"properties":{"custom":{"type":"string"}},"required":["custom"],"title":"CustomSessionSource","type":"object"},{"additionalProperties":false,"properties":{"subAgent":{"$ref":"#/definitions/SubAgentSource"}},"required":["subAgent"],"title":"SubAgentSessionSource","type":"object"},{"enum":["cli","vscode","exec","appServer","unknown"],"type":"string"}]},
"SubAgentActivityKind": {"enum":["started","interacted","interrupted"],"type":"string"},
"SubAgentActivityKind": {"enum":["started","interacted","interrupted","completed"],"type":"string"},
"SubAgentSource": {"oneOf":[{"additionalProperties":false,"properties":{"thread_spawn":{"properties":{"agent_nickname":{"default":null,"type":["string","null"]},"agent_path":{"anyOf":[{"$ref":"#/definitions/AgentPath"},{"type":"null"}],"default":null},"agent_role":{"default":null,"type":["string","null"]},"depth":{"format":"int32","type":"integer"},"parent_thread_id":{"$ref":"#/definitions/ThreadId"}},"required":["depth","parent_thread_id"],"type":"object"}},"required":["thread_spawn"],"title":"ThreadSpawnSubAgentSource","type":"object"},{"additionalProperties":false,"properties":{"other":{"type":"string"}},"required":["other"],"title":"OtherSubAgentSource","type":"object"},{"enum":["review","compact","memory_consolidation"],"type":"string"}]},
"TextElement": {"properties":{"byteRange":{"allOf":[{"$ref":"#/definitions/ByteRange"}],"description":"Byte range in the parent `text` buffer that this element occupies."},"placeholder":{"description":"Optional human-readable placeholder for the element, displayed in the UI.","type":["string","null"]}},"required":["byteRange"],"type":"object"},
"Thread": {"properties":{"agentNickname":{"description":"Optional random unique nickname assigned to an AgentControl-spawned sub-agent.","type":["string","null"]},"agentRole":{"description":"Optional role (agent_role) assigned to an AgentControl-spawned sub-agent.","type":["string","null"]},"canAcceptDirectInput":{"description":"Whether the app server accepts direct turn input for this loaded thread. `None` means the capability is unavailable, such as for an unloaded stored thread.","type":["boolean","null"]},"cliVersion":{"description":"Version of the CLI that created the thread.","type":"string"},"createdAt":{"description":"Unix timestamp (in seconds) when the thread was created.","format":"int64","type":"integer"},"cwd":{"allOf":[{"$ref":"#/definitions/AbsolutePathBuf"}],"description":"Working directory captured for the thread."},"ephemeral":{"description":"Whether the thread is ephemeral and should not be materialized on disk.","type":"boolean"},"extra":{"anyOf":[{"$ref":"#/definitions/ThreadExtra"},{"type":"null"}],"description":"Optional implementation-specific thread data."},"forkedFromId":{"description":"Source thread id when this thread was created by forking another thread.","type":["string","null"]},"gitInfo":{"anyOf":[{"$ref":"#/definitions/GitInfo"},{"type":"null"}],"description":"Optional Git metadata captured when the thread was created."},"historyMode":{"allOf":[{"$ref":"#/definitions/ThreadHistoryMode"}],"default":"legacy","description":"Persisted thread history contract selected when this thread was created."},"id":{"description":"Identifier for this thread. Codex-generated thread IDs are UUIDv7.","type":"string"},"modelProvider":{"description":"Model provider used for this thread (for example, 'openai').","type":"string"},"name":{"description":"Optional user-facing thread title.","type":["string","null"]},"parentThreadId":{"description":"The ID of the parent thread. This will only be set if this thread is a subagent.","type":["string","null"]},"path":{"description":"[UNSTABLE] Path to the thread on disk.","type":["string","null"]},"preview":{"description":"Usually the first user message in the thread, if available.","type":"string"},"projectId":{"description":"Canonical project assignment owned by app-server, if any.","type":["string","null"]},"recencyAt":{"description":"Unix timestamp (in seconds) used for thread recency ordering.","format":"int64","type":["integer","null"]},"section":{"anyOf":[{"$ref":"#/definitions/ThreadSection"},{"type":"null"}],"default":null,"description":"The independently persisted section selected for this thread, if any."},"sectionEnteredAt":{"default":null,"description":"Unix timestamp in seconds when the thread entered its current section.","format":"int64","type":["integer","null"]},"sessionId":{"description":"Session id shared by threads that belong to the same session tree.","type":"string"},"source":{"allOf":[{"$ref":"#/definitions/SessionSource"}],"description":"Origin of the thread (CLI, VSCode, codex exec, codex app-server, etc.)."},"status":{"allOf":[{"$ref":"#/definitions/ThreadStatus"}],"description":"Current runtime status for the thread."},"threadSource":{"anyOf":[{"$ref":"#/definitions/ThreadSource"},{"type":"null"}],"description":"Optional analytics source classification for this thread."},"turns":{"description":"Only populated on `thread/resume`, `thread/rollback`, `thread/fork`, and `thread/read` (when `includeTurns` is true) responses. For all other responses and notifications returning a Thread, the turns field will be an empty list.","items":{"$ref":"#/definitions/Turn"},"type":"array"},"updatedAt":{"description":"Unix timestamp (in seconds) when the thread was last updated.","format":"int64","type":"integer"}},"required":["cliVersion","createdAt","cwd","ephemeral","id","modelProvider","preview","projectId","sessionId","source","status","turns","updatedAt"],"type":"object"},
@@ -714,7 +714,7 @@ describe("shared Codex app-server client", () => {
const startOptions = configureManagedDesktopFallback();
const acquire = getSharedCodexAppServerClient({ startOptions, timeoutMs: 1_000 });
await sendInitializeResult(desktop, "openclaw/0.150.0-alpha.23 (macOS; test)");
await sendInitializeResult(desktop, "openclaw/0.151.0-alpha.4 (macOS; test)");
const client = await acquire;
expect(client).toBe(desktop.client);
@@ -728,7 +728,7 @@ describe("shared Codex app-server client", () => {
expect(mocks.embeddedAgentLog.warn).toHaveBeenCalledWith(
"codex app-server is newer than OpenClaw's managed runtime; continuing with normal startup validation",
{
detectedVersion: "0.150.0-alpha.23",
detectedVersion: "0.151.0-alpha.4",
validatedVersion: CODEX_APP_SERVER_VERSION,
},
);
+1 -1
View File
@@ -2,7 +2,7 @@
* Version and package pins for the managed Codex app-server runtime.
*/
/** Exact Codex app-server version shipped by the OpenClaw Codex bridge. */
export const CODEX_APP_SERVER_VERSION = "0.149.1";
export const CODEX_APP_SERVER_VERSION = "0.150.1";
/** Inclusive runtime compatibility floor for external app-server binaries. */
export const MIN_SUPPORTED_CODEX_APP_SERVER_VERSION = "0.149.0";
/** npm package name for the managed Codex app-server binary. */
+1 -1
View File
@@ -91,7 +91,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.149.1";
const OPENAI_CODEX_CLIENT_VERSION = "0.150.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;
+31 -31
View File
@@ -5,7 +5,7 @@ settings:
excludeLinksFromLockfile: false
overrides:
'@agentclientprotocol/codex-acp@1.6.0>@openai/codex': 0.149.1
'@agentclientprotocol/codex-acp@1.6.0>@openai/codex': 0.150.1
'@codemirror/commands@6.11.0>@codemirror/view': 6.43.9
'@anthropic-ai/sdk': 0.118.0
'@opentelemetry/core': 2.10.0
@@ -663,8 +663,8 @@ importers:
extensions/codex:
dependencies:
'@openai/codex':
specifier: 0.149.1
version: 0.149.1
specifier: 0.150.1
version: 0.150.1
semver:
specifier: 7.8.5
version: 7.8.5
@@ -4275,43 +4275,43 @@ packages:
resolution: {integrity: sha512-3zcN5Q3yEmeyxXBzqB6fXPQFzYa2ROsGFSr69W0ArXIAGJqxl/aFECOVPD2kbkYPm0U/EHxFKgclK3UA9WQg5A==}
engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0}
'@openai/codex@0.149.1':
resolution: {integrity: sha512-6q5pbcpFbJbqOpkubSDBwXmktQ55aD8eUzGzBF1zASob2DjwhBKDSNGtdZKalfrNJUdTDTPDMmzCXEXs5tMBYA==}
'@openai/codex@0.150.1':
resolution: {integrity: sha512-knrbhpJH3mEULAVStcZW4F5WEt9MQhBj6KFOonBSIUGTLcHlu9CE7FRmr95E33y94+sWNZSeVBBV/kYvlfgxkQ==}
engines: {node: '>=16'}
hasBin: true
'@openai/codex@0.149.1-darwin-arm64':
resolution: {integrity: sha512-6X84kTCbnTgPIJ2EdcPsrvwS0Wxsqpa+bCswGmRf4BjhcQ5nPMnBC6yCAaCMj+vrbXQHj+L6sa9FaR4QkmA1qw==}
'@openai/codex@0.150.1-darwin-arm64':
resolution: {integrity: sha512-Z614kKSI3/p+YMotBJMxCc4kvRCYEgsVmnaCG6U8HDraqTFxYcQYQ79B4/GBCBS88/KtacHI6qzjA+4Mu5BynA==}
engines: {node: '>=16'}
cpu: [arm64]
os: [darwin]
'@openai/codex@0.149.1-darwin-x64':
resolution: {integrity: sha512-MfLBQLfcElJL9tvj6y45qVHHMGSXCPnQOixuD3/Zq0g1BW/eFizkrGLdn48cFpc+l8cK+gt5nYG5pQYwVs6g4A==}
'@openai/codex@0.150.1-darwin-x64':
resolution: {integrity: sha512-vcvJ7Q4IP2vA5ZR3v9Pj9VLKtlhD7efujxHqqW/NJ8F2/XqTD4iPjErV07190Om3wONW48yploTgul16QUk9Mg==}
engines: {node: '>=16'}
cpu: [x64]
os: [darwin]
'@openai/codex@0.149.1-linux-arm64':
resolution: {integrity: sha512-OqxUfZ1TVvHd18zHPKK/8ZRlpk8Vy11mg5CMHaLxNWldTbwVImDKtSLWT+m8m4NM5Sz4PbjtZMrVT/RfpBW/mQ==}
'@openai/codex@0.150.1-linux-arm64':
resolution: {integrity: sha512-U0BY5UDsCy1up/O2YzGtVtDbcumNerVyZVVx55PW9gGQsFOL0utOyBJiG/UiocFAXix8JNvNJxYMRt2Jx0FJKg==}
engines: {node: '>=16'}
cpu: [arm64]
os: [linux]
'@openai/codex@0.149.1-linux-x64':
resolution: {integrity: sha512-Of5fGYgr7tAMsyj6vhXb4/RM/UoA3Zq8BLegUBDC09UNy1XTLGYP/2XD+UX8z3qh0NDwxYdCjFIWdDNijKZggQ==}
'@openai/codex@0.150.1-linux-x64':
resolution: {integrity: sha512-B3Bu5MF/G9qFhbSMrdyZz9ocknXOo45DnOdWrREJaxWTjiuUO1ogoDR0/ttdc29JRFkbbXs3aC+Td8vIx3X0oA==}
engines: {node: '>=16'}
cpu: [x64]
os: [linux]
'@openai/codex@0.149.1-win32-arm64':
resolution: {integrity: sha512-5K0DmOKGK9Bos627p8sK8ATHjovPK0sDyT6h9Cb+4v+5CW5SGw1HLgjGxoLfJ8g3cg6mtg/pRCXXo2L/j71UVA==}
'@openai/codex@0.150.1-win32-arm64':
resolution: {integrity: sha512-8I7N3ppKS1ql9GUr2RHS5Gw+KkRCKfIMIDDK/brxq6HizLgHoDK4CIR0OTvEgdX3Yh/2reBbxr9P4L1e+61e+Q==}
engines: {node: '>=16'}
cpu: [arm64]
os: [win32]
'@openai/codex@0.149.1-win32-x64':
resolution: {integrity: sha512-G3QXGAg7nyyhqOeooAMUekBCeHd8a1QByhKcVAFyzNBaI06t6Ft7nsF+1SzFS0spuIdU4YyMi5YD26ukADBQUQ==}
'@openai/codex@0.150.1-win32-x64':
resolution: {integrity: sha512-1P1tscFnw4A4ip/WN1R5WYPdfuAlxLctPpcE1QAPQnOtbkJR5NX8da4kNTQmiDN/Flx3TLJPDTRHP9Jn435eJg==}
engines: {node: '>=16'}
cpu: [x64]
os: [win32]
@@ -9857,7 +9857,7 @@ snapshots:
'@agentclientprotocol/codex-acp@1.6.0':
dependencies:
'@agentclientprotocol/sdk': 1.3.0(zod@4.4.3)
'@openai/codex': 0.149.1
'@openai/codex': 0.150.1
diff: 9.0.0
open: 11.0.0
vscode-jsonrpc: 9.0.1
@@ -11922,31 +11922,31 @@ snapshots:
'@npmcli/redact@5.0.0': {}
'@openai/codex@0.149.1':
'@openai/codex@0.150.1':
optionalDependencies:
'@openai/codex-darwin-arm64': '@openai/codex@0.149.1-darwin-arm64'
'@openai/codex-darwin-x64': '@openai/codex@0.149.1-darwin-x64'
'@openai/codex-linux-arm64': '@openai/codex@0.149.1-linux-arm64'
'@openai/codex-linux-x64': '@openai/codex@0.149.1-linux-x64'
'@openai/codex-win32-arm64': '@openai/codex@0.149.1-win32-arm64'
'@openai/codex-win32-x64': '@openai/codex@0.149.1-win32-x64'
'@openai/codex-darwin-arm64': '@openai/codex@0.150.1-darwin-arm64'
'@openai/codex-darwin-x64': '@openai/codex@0.150.1-darwin-x64'
'@openai/codex-linux-arm64': '@openai/codex@0.150.1-linux-arm64'
'@openai/codex-linux-x64': '@openai/codex@0.150.1-linux-x64'
'@openai/codex-win32-arm64': '@openai/codex@0.150.1-win32-arm64'
'@openai/codex-win32-x64': '@openai/codex@0.150.1-win32-x64'
'@openai/codex@0.149.1-darwin-arm64':
'@openai/codex@0.150.1-darwin-arm64':
optional: true
'@openai/codex@0.149.1-darwin-x64':
'@openai/codex@0.150.1-darwin-x64':
optional: true
'@openai/codex@0.149.1-linux-arm64':
'@openai/codex@0.150.1-linux-arm64':
optional: true
'@openai/codex@0.149.1-linux-x64':
'@openai/codex@0.150.1-linux-x64':
optional: true
'@openai/codex@0.149.1-win32-arm64':
'@openai/codex@0.150.1-win32-arm64':
optional: true
'@openai/codex@0.149.1-win32-x64':
'@openai/codex@0.150.1-win32-x64':
optional: true
'@openclaw/crabline@0.1.17':
+1 -1
View File
@@ -126,7 +126,7 @@ verifyDepsBeforeRun: false
blockExoticSubdeps: true
overrides:
"@agentclientprotocol/codex-acp@1.6.0>@openai/codex": 0.149.1
"@agentclientprotocol/codex-acp@1.6.0>@openai/codex": 0.150.1
"@codemirror/commands@6.11.0>@codemirror/view": 6.43.9
"@anthropic-ai/sdk": 0.118.0
"@opentelemetry/core": 2.10.0
@@ -4,7 +4,7 @@ import fs from "node:fs";
import path from "node:path";
import { assertPathInside, findPackageJson, readJson } from "./codex-install-utils.mjs";
const EXPECTED_CODEX_VERSION = "0.149.1";
const EXPECTED_CODEX_VERSION = "0.150.1";
const CODEX_PLATFORM_TARGETS = new Map([
["linux:x64", { alias: "@openai/codex-linux-x64", os: "linux", cpu: "x64" }],
["linux:arm64", { alias: "@openai/codex-linux-arm64", os: "linux", cpu: "arm64" }],
@@ -18,7 +18,7 @@ const CODEX_ON_DEMAND_ASSERTIONS_SCRIPT = "scripts/e2e/lib/codex-on-demand/asser
const CODEX_NPM_PLUGIN_LIVE_ASSERTIONS_SCRIPT =
"scripts/e2e/lib/codex-npm-plugin-live/assertions.mjs";
const DISABLE_EXPERIMENTAL_WARNING = "--disable-warning=ExperimentalWarning";
const CODEX_VERSION = "0.149.1";
const CODEX_VERSION = "0.150.1";
const tempDirs: string[] = [];
const tmpFixtureFiles = [
"/tmp/openclaw-codex-agent.err",