diff --git a/src/agents/pi-embedded-runner-extraparams.e2e.test.ts b/src/agents/pi-embedded-runner-extraparams.e2e.test.ts index f2f6af57d2..db093750e1 100644 --- a/src/agents/pi-embedded-runner-extraparams.e2e.test.ts +++ b/src/agents/pi-embedded-runner-extraparams.e2e.test.ts @@ -137,4 +137,27 @@ describe("applyExtraParamsToAgent", () => { expect(payload.store).toBe(false); }); + + it("does not force store=true for Codex responses (Codex requires store=false)", () => { + const payload = { store: false }; + const baseStreamFn: StreamFn = (_model, _context, options) => { + options?.onPayload?.(payload); + return new AssistantMessageEventStream(); + }; + const agent = { streamFn: baseStreamFn }; + + applyExtraParamsToAgent(agent, undefined, "openai-codex", "codex-mini-latest"); + + const model = { + api: "openai-codex-responses", + provider: "openai-codex", + id: "codex-mini-latest", + baseUrl: "https://chatgpt.com/backend-api/codex/responses", + } as Model<"openai-codex-responses">; + const context: Context = { messages: [] }; + + void agent.streamFn?.(model, context, {}); + + expect(payload.store).toBe(false); + }); }); diff --git a/src/agents/pi-embedded-runner/extra-params.ts b/src/agents/pi-embedded-runner/extra-params.ts index 61734cd0ba..08cef5491b 100644 --- a/src/agents/pi-embedded-runner/extra-params.ts +++ b/src/agents/pi-embedded-runner/extra-params.ts @@ -8,8 +8,10 @@ const OPENROUTER_APP_HEADERS: Record = { "HTTP-Referer": "https://openclaw.ai", "X-Title": "OpenClaw", }; -const OPENAI_RESPONSES_APIS = new Set(["openai-responses", "openai-codex-responses"]); -const OPENAI_RESPONSES_PROVIDERS = new Set(["openai", "openai-codex"]); +// NOTE: We only force `store=true` for *direct* OpenAI Responses. +// Codex responses (chatgpt.com/backend-api/codex/responses) require `store=false`. +const OPENAI_RESPONSES_APIS = new Set(["openai-responses"]); +const OPENAI_RESPONSES_PROVIDERS = new Set(["openai"]); /** * Resolve provider-specific extra params from model config.