feat(model): add GPT-5.5 support for Codex provider (#880)

- Bump Codex provider defaults from gpt-5.4 to gpt-5.5 across all ModelConfigs
- Update codexplan alias to resolve to gpt-5.5
- Add gpt-5.5 and gpt-5.5-mini to model picker with reasoning effort mappings
- Add context window and max output token specs for gpt-5.5 family
- Add gpt-5.5 entries to COPILOT_MODELS registry
- Keep official OpenAI API preset at gpt-5.4 (API availability pending)
- Update codexShim tests to expect gpt-5.5 from codexplan alias

Co-authored-by: OpenClaude <openclaude@gitlawb.com>
This commit is contained in:
Kevin Codex
2026-04-24 19:06:36 +08:00
committed by GitHub
parent b694ccfff1
commit 038f715b7a
8 changed files with 92 additions and 28 deletions

View File

@@ -178,9 +178,9 @@ export function getDefaultOpusModel(): ModelName {
if (getAPIProvider() === 'openai') {
return process.env.OPENAI_MODEL || 'gpt-4o'
}
// Codex provider: use user-specified model or default to gpt-5.4
// Codex provider: use user-specified model or default to gpt-5.5
if (getAPIProvider() === 'codex') {
return process.env.OPENAI_MODEL || 'gpt-5.4'
return process.env.OPENAI_MODEL || 'gpt-5.5'
}
// GitHub Copilot provider
if (getAPIProvider() === 'github') {
@@ -222,7 +222,7 @@ export function getDefaultSonnetModel(): ModelName {
}
// Codex provider
if (getAPIProvider() === 'codex') {
return process.env.OPENAI_MODEL || 'gpt-5.4'
return process.env.OPENAI_MODEL || 'gpt-5.5'
}
// GitHub Copilot provider
if (getAPIProvider() === 'github') {
@@ -258,7 +258,7 @@ export function getDefaultHaikuModel(): ModelName {
}
// Codex provider
if (getAPIProvider() === 'codex') {
return process.env.OPENAI_MODEL || 'gpt-5.4'
return process.env.OPENAI_MODEL || 'gpt-5.5'
}
// GitHub Copilot provider
if (getAPIProvider() === 'github') {
@@ -340,9 +340,9 @@ export function getDefaultMainLoopModelSetting(): ModelName | ModelAlias {
if (getAPIProvider() === 'openai') {
return process.env.OPENAI_MODEL || 'gpt-4o'
}
// Codex provider: always use the configured Codex model (default gpt-5.4)
// Codex provider: always use the configured Codex model (default gpt-5.5)
if (getAPIProvider() === 'codex') {
return process.env.OPENAI_MODEL || 'gpt-5.4'
return process.env.OPENAI_MODEL || 'gpt-5.5'
}
// Ants default to defaultModel from flag config, or Opus 1M if not configured
@@ -506,7 +506,7 @@ export function renderModelSetting(setting: ModelName | ModelAlias): string {
}
// Handle Codex models - show actual model name + resolved model
if (setting === 'codexplan') {
return 'codexplan (gpt-5.4)'
return 'codexplan (gpt-5.5)'
}
if (setting === 'codexspark') {
return 'codexspark (gpt-5.3-codex-spark)'
@@ -527,6 +527,8 @@ export function getPublicModelDisplayName(model: ModelName): string | null {
if (getAPIProvider() === 'openai' || getAPIProvider() === 'gemini' || getAPIProvider() === 'codex' || getAPIProvider() === 'github') {
// Return display names for known GitHub Copilot models
const copilotModelNames: Record<string, string> = {
'gpt-5.5': 'GPT-5.5',
'gpt-5.5-mini': 'GPT-5.5 mini',
'gpt-5.4': 'GPT-5.4',
'gpt-5.4-mini': 'GPT-5.4 mini',
'gpt-5.3-codex': 'GPT-5.3 Codex',
@@ -553,6 +555,8 @@ export function getPublicModelDisplayName(model: ModelName): string | null {
return null
}
switch (model) {
case 'gpt-5.5':
return 'GPT-5.5'
case 'gpt-5.4':
return 'GPT-5.4'
case 'gpt-5.3-codex-spark':
@@ -687,7 +691,7 @@ export function parseUserSpecifiedModel(
// Handle Codex aliases - map to actual model names
if (modelString === 'codexplan') {
return 'gpt-5.4'
return 'gpt-5.5'
}
if (modelString === 'codexspark') {
return 'gpt-5.3-codex-spark'