From 3105ff2ddab0b779dadc1045f481d13bba862c0b Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Thu, 23 Apr 2026 05:02:13 +0100 Subject: [PATCH] fix(acpx): preserve codex acp auth env --- extensions/acpx/src/codex-auth-bridge.test.ts | 2 +- extensions/acpx/src/codex-auth-bridge.ts | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/extensions/acpx/src/codex-auth-bridge.test.ts b/extensions/acpx/src/codex-auth-bridge.test.ts index 4e96b502932..991304572df 100644 --- a/extensions/acpx/src/codex-auth-bridge.test.ts +++ b/extensions/acpx/src/codex-auth-bridge.test.ts @@ -82,7 +82,7 @@ describe("prepareAcpxCodexAuthConfig", () => { const wrapper = await fs.readFile(wrapperPath, "utf8"); expect(wrapper).toContain(`CODEX_HOME: ${JSON.stringify(path.dirname(isolatedAuthPath))}`); - expect(wrapper).toContain("delete env[key]"); + expect(wrapper).toContain("for (const key of [])"); expect(wrapper).not.toContain("test-api-key"); }); diff --git a/extensions/acpx/src/codex-auth-bridge.ts b/extensions/acpx/src/codex-auth-bridge.ts index 1f4126209ec..5f89917f312 100644 --- a/extensions/acpx/src/codex-auth-bridge.ts +++ b/extensions/acpx/src/codex-auth-bridge.ts @@ -9,7 +9,9 @@ import type { ResolvedAcpxPluginConfig } from "./config.js"; const CODEX_AGENT_ID = "codex"; const DEFAULT_CODEX_AUTH_PROFILE_ID = "openai-codex:default"; -const CODEX_AUTH_ENV_CLEAR_KEYS = ["OPENAI_API_KEY"]; +// acpx selects ACP auth methods from the OpenClaw process env before the wrapper +// launches. Keep those env vars visible to the child so its auth method matches. +const CODEX_AUTH_ENV_CLEAR_KEYS: string[] = []; type PreparedAcpxCodexAuth = { codexHome: string;