From 69ea1f1e4a99e9436215d8cb391a116a64442b94 Mon Sep 17 00:00:00 2001 From: Kevin Codex Date: Wed, 8 Apr 2026 02:45:49 +0800 Subject: [PATCH] fix: restore default context window for unknown 3p models (#494) * fix: restore default context window for unknown 3p models * fix: add MiniMax context metadata --- src/utils/context.test.ts | 19 +++++++++++++++++++ src/utils/context.ts | 2 +- src/utils/model/openaiContextWindows.ts | 8 ++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/utils/context.test.ts b/src/utils/context.test.ts index f6bc80d3..3bb8d643 100644 --- a/src/utils/context.test.ts +++ b/src/utils/context.test.ts @@ -94,3 +94,22 @@ test('gpt-5.4 family keeps large max output overrides within provider limits', ( expect(getMaxOutputTokensForModel('gpt-5.4-mini')).toBe(128_000) expect(getMaxOutputTokensForModel('gpt-5.4-nano')).toBe(128_000) }) + +test('MiniMax-M2.7 uses explicit provider-specific context and output caps', () => { + process.env.CLAUDE_CODE_USE_OPENAI = '1' + delete process.env.CLAUDE_CODE_MAX_OUTPUT_TOKENS + + expect(getContextWindowForModel('MiniMax-M2.7')).toBe(204_800) + expect(getModelMaxOutputTokens('MiniMax-M2.7')).toEqual({ + default: 131_072, + upperLimit: 131_072, + }) + expect(getMaxOutputTokensForModel('MiniMax-M2.7')).toBe(131_072) +}) + +test('unknown openai-compatible models still use the conservative fallback window', () => { + process.env.CLAUDE_CODE_USE_OPENAI = '1' + delete process.env.CLAUDE_CODE_MAX_OUTPUT_TOKENS + + expect(getContextWindowForModel('some-unknown-3p-model')).toBe(8_000) +}) diff --git a/src/utils/context.ts b/src/utils/context.ts index 24b5dd85..0a6a2a41 100644 --- a/src/utils/context.ts +++ b/src/utils/context.ts @@ -74,7 +74,7 @@ export function getContextWindowForModel( // OpenAI-compatible provider — use known context windows for the model. // Unknown models get a conservative 8k default so auto-compact triggers - // before hitting a hard context_window_exceeded error (issue #248 finding 3). + // before hitting a hard context_window_exceeded error. const isOpenAIProvider = isEnvTruthy(process.env.CLAUDE_CODE_USE_OPENAI) || isEnvTruthy(process.env.CLAUDE_CODE_USE_GEMINI) || diff --git a/src/utils/model/openaiContextWindows.ts b/src/utils/model/openaiContextWindows.ts index 315b514b..e1dc44f3 100644 --- a/src/utils/model/openaiContextWindows.ts +++ b/src/utils/model/openaiContextWindows.ts @@ -44,6 +44,10 @@ const OPENAI_CONTEXT_WINDOWS: Record = { 'mistral-large-latest': 131_072, 'mistral-small-latest': 131_072, + // MiniMax + 'MiniMax-M2.7': 204_800, + 'minimax-m2.7': 204_800, + // Google (via OpenRouter) 'google/gemini-2.0-flash':1_048_576, 'google/gemini-2.5-pro': 1_048_576, @@ -110,6 +114,10 @@ const OPENAI_MAX_OUTPUT_TOKENS: Record = { 'mistral-large-latest': 32_768, 'mistral-small-latest': 32_768, + // MiniMax + 'MiniMax-M2.7': 131_072, + 'minimax-m2.7': 131_072, + // Google (via OpenRouter) 'google/gemini-2.0-flash': 8_192, 'google/gemini-2.5-pro': 65_536,