From ec95b27308e915aca18127ab8748a8e785481dcd Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Thu, 6 Aug 2026 13:35:48 -0500 Subject: [PATCH] fix(core): align ChatGPT context limits (#40902) --- packages/core/src/plugin/provider/openai.ts | 2 +- packages/core/test/model-resolver.test.ts | 3 +++ packages/core/test/plugin/provider-openai.test.ts | 6 +++--- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/core/src/plugin/provider/openai.ts b/packages/core/src/plugin/provider/openai.ts index 54ce0f1a3c6..7f168f58c72 100644 --- a/packages/core/src/plugin/provider/openai.ts +++ b/packages/core/src/plugin/provider/openai.ts @@ -221,7 +221,7 @@ export const OpenAIPlugin = define({ } draft.cost = [] // Match Codex CLI so context consumption and subscription usage stay consistent between clients. - draft.limit = { ...draft.limit, context: 272_000, input: 272_000 } + draft.limit = { ...draft.limit, context: 400_000, input: 272_000 } }) } }) diff --git a/packages/core/test/model-resolver.test.ts b/packages/core/test/model-resolver.test.ts index 7e0d71085e2..0e9f30e4fcf 100644 --- a/packages/core/test/model-resolver.test.ts +++ b/packages/core/test/model-resolver.test.ts @@ -151,6 +151,9 @@ describe("ModelResolver", () => { http: { body: { custom_extension: { enabled: true } } }, }, }) + const prepared = yield* compileRequest(LLM.request({ model: resolved, prompt: "Hello" })) + expect(prepared.body.max_output_tokens).toBeUndefined() + expect(JSON.stringify(prepared.body)).not.toContain("max_output_tokens") }), ) diff --git a/packages/core/test/plugin/provider-openai.test.ts b/packages/core/test/plugin/provider-openai.test.ts index c53eefdbd24..88551c90ebf 100644 --- a/packages/core/test/plugin/provider-openai.test.ts +++ b/packages/core/test/plugin/provider-openai.test.ts @@ -126,7 +126,7 @@ describe("OpenAIPlugin", () => { const eligible = required(yield* catalog.model.get(Provider.ID.openai, Model.ID.make("gpt-5.5"))) expect(eligible.package).toBe("@opencode-ai/ai/providers/openai") expect(eligible.cost).toEqual([]) - expect(eligible.limit).toEqual({ context: 272_000, input: 272_000, output: 128_000 }) + expect(eligible.limit).toEqual({ context: 400_000, input: 272_000, output: 128_000 }) expect(eligible.enabled).toBe(true) expect(required(yield* catalog.model.get(Provider.ID.openai, Model.ID.make("gpt-5.5-pro"))).enabled).toBe( false, @@ -135,14 +135,14 @@ describe("OpenAIPlugin", () => { false, ) expect(required(yield* catalog.model.get(Provider.ID.openai, Model.ID.make("gpt-5.4"))).limit).toEqual({ - context: 272_000, + context: 400_000, input: 272_000, output: 64_000, }) expect(required(yield* catalog.model.get(Provider.ID.openai, Model.ID.make("gpt-5.6"))).enabled).toBe(false) const gpt56 = required(yield* catalog.model.get(Provider.ID.openai, Model.ID.make("gpt-5.6-sol"))) expect(gpt56.enabled).toBe(true) - expect(gpt56.limit).toEqual({ context: 272_000, input: 272_000, output: 128_000 }) + expect(gpt56.limit).toEqual({ context: 400_000, input: 272_000, output: 128_000 }) expect(required(yield* catalog.model.get(Provider.ID.openai, Model.ID.make("gpt-4.1"))).enabled).toBe(false) }), )