fix: remove OpenAI unknown model fallback

This commit is contained in:
shaw
2026-05-04 11:43:00 +08:00
parent d9e68f2ca1
commit df722c9a6e
10 changed files with 214 additions and 137 deletions
@@ -11,7 +11,7 @@ func TestResolveOpenAIForwardModel(t *testing.T) {
expectedModel string
}{
{
name: "falls back to group default when account has no mapping",
name: "uses messages dispatch default for claude model",
account: &Account{
Credentials: map[string]any{},
},
@@ -19,6 +19,15 @@ func TestResolveOpenAIForwardModel(t *testing.T) {
defaultMappedModel: "gpt-4o-mini",
expectedModel: "gpt-4o-mini",
},
{
name: "does not fall back to group default for invalid gpt model",
account: &Account{
Credentials: map[string]any{},
},
requestedModel: "gpt6",
defaultMappedModel: "gpt-5.4",
expectedModel: "gpt6",
},
{
name: "preserves explicit gpt-5.4 instead of group default",
account: &Account{
@@ -119,14 +128,14 @@ func TestResolveOpenAIForwardModel_PreventsClaudeModelFromFallingBackToGpt54(t *
Credentials: map[string]any{},
}
withoutDefault := normalizeCodexModel(resolveOpenAIForwardModel(account, "claude-opus-4-6", ""))
if withoutDefault != "gpt-5.4" {
t.Fatalf("normalizeCodexModel(...) = %q, want %q", withoutDefault, "gpt-5.4")
withoutDefault := resolveOpenAIForwardModel(account, "claude-opus-4-6", "")
if withoutDefault != "claude-opus-4-6" {
t.Fatalf("resolveOpenAIForwardModel(...) = %q, want %q", withoutDefault, "claude-opus-4-6")
}
withDefault := normalizeCodexModel(resolveOpenAIForwardModel(account, "claude-opus-4-6", "gpt-5.4"))
withDefault := resolveOpenAIForwardModel(account, "claude-opus-4-6", "gpt-5.4")
if withDefault != "gpt-5.4" {
t.Fatalf("normalizeCodexModel(...) = %q, want %q", withDefault, "gpt-5.4")
t.Fatalf("resolveOpenAIForwardModel(...) = %q, want %q", withDefault, "gpt-5.4")
}
}
@@ -205,6 +214,10 @@ func TestNormalizeCodexModel(t *testing.T) {
"gpt-5.3-codex-spark-xhigh": "gpt-5.3-codex-spark",
"gpt-5.3": "gpt-5.3-codex",
"gpt-image-2": "gpt-image-2",
"gpt-5.4-nano": "gpt-5.4-nano",
"gpt-5.4-nano-high": "gpt-5.4-nano",
"gpt6": "gpt6",
"claude-opus-4-6": "claude-opus-4-6",
}
for input, expected := range cases {
@@ -222,9 +235,21 @@ func TestNormalizeOpenAIModelForUpstream(t *testing.T) {
want string
}{
{
name: "oauth keeps codex normalization behavior",
name: "oauth preserves unknown non codex model",
account: &Account{Type: AccountTypeOAuth},
model: "gemini-3-flash-preview",
want: "gemini-3-flash-preview",
},
{
name: "oauth preserves invalid gpt model",
account: &Account{Type: AccountTypeOAuth},
model: "gpt6",
want: "gpt6",
},
{
name: "oauth normalizes known codex alias",
account: &Account{Type: AccountTypeOAuth},
model: "gpt-5.4-high",
want: "gpt-5.4",
},
{