chore(codex): bump app-server to 0.146.1

This commit is contained in:
Vincent Koc
2026-08-06 07:11:23 +08:00
parent 11757fecd4
commit b269e652bc
27 changed files with 139 additions and 132 deletions
+1 -1
View File
@@ -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.
+6 -6
View File
@@ -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.
<Note>
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 |
+4 -4
View File
@@ -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
+2 -2
View File
@@ -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.
@@ -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,
+1 -1
View File
@@ -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",
@@ -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<void> {
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,
@@ -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,
@@ -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,
@@ -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 };
@@ -846,6 +846,13 @@
"model": {
"type": "string"
},
"modelSpecialty": {
"default": null,
"type": [
"string",
"null"
]
},
"serviceTiers": {
"default": [],
"items": {
@@ -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,
@@ -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,
@@ -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,
@@ -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,
@@ -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;
}
@@ -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,
@@ -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,
@@ -36,7 +36,7 @@ function threadStartResult(threadId = "thread-1"): Record<string, unknown> {
status: { type: "idle" },
path: null,
cwd: "/tmp",
cliVersion: "0.146.0",
cliVersion: "0.146.1",
source: "unknown",
agentNickname: null,
agentRole: null,
@@ -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;
}
@@ -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",
+1 -1
View File
@@ -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";
@@ -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,
@@ -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,
+1 -1
View File
@@ -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;
+31 -31
View File
@@ -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':
+1 -1
View File
@@ -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