mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-12 21:53:00 -06:00
chore(codex): bump app-server to 0.146.1
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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 };
|
||||
|
||||
+7
@@ -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",
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
|
||||
Generated
+31
-31
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user