fix(config): use canonical Anthropic default model ID

This commit is contained in:
Sutra Hsing
2026-06-07 15:34:59 +08:00
parent 7d2b0c2a4d
commit 007b2ae8bd
3 changed files with 39 additions and 1 deletions
+23
View File
@@ -907,6 +907,29 @@ func TestDefaultConfig_WorkspacePath(t *testing.T) {
}
}
// TestDefaultConfig_AnthropicModelsUseClaudeAPIIDs verifies that first-party
// Anthropic defaults use Claude API model IDs, not dotted display names or
// Bedrock-style provider prefixes. See:
// https://platform.claude.com/docs/en/about-claude/models/model-ids-and-versions
func TestDefaultConfig_AnthropicModelsUseClaudeAPIIDs(t *testing.T) {
cfg := DefaultConfig()
checked := 0
for _, model := range cfg.ModelList {
if model.Provider != "anthropic" {
continue
}
checked++
if strings.Contains(model.Model, ".") {
t.Fatalf("Anthropic default model %q uses dotted ID %q", model.ModelName, model.Model)
}
}
if checked == 0 {
t.Fatal("DefaultConfig() missing Anthropic models")
}
}
// TestDefaultConfig_MaxTokens verifies max tokens has default value
func TestDefaultConfig_MaxTokens(t *testing.T) {
cfg := DefaultConfig()
+1 -1
View File
@@ -88,7 +88,7 @@ func DefaultConfig() *Config {
{
ModelName: "claude-sonnet-4.6",
Provider: "anthropic",
Model: "claude-sonnet-4.6",
Model: "claude-sonnet-4-6",
APIBase: "https://api.anthropic.com/v1",
},
+15
View File
@@ -1081,6 +1081,21 @@ func TestModelProviderOptions(t *testing.T) {
} else if option.DefaultAPIBase != "https://api.anthropic.com/v1" {
t.Fatalf("anthropic default_api_base = %q, want %q", option.DefaultAPIBase, "https://api.anthropic.com/v1")
}
// First-party Claude API model IDs use hyphenated formats such as
// claude-{name}-{major}-{minor} or claude-{name}-{major}-{minor}-{YYYYMMDD};
// dotted provider prefixes are for platform-specific IDs such as Bedrock.
// https://platform.claude.com/docs/en/about-claude/models/model-ids-and-versions
for _, provider := range []string{"anthropic", "anthropic-messages"} {
option, ok := seen[provider]
if !ok {
t.Fatalf("%s option missing", provider)
}
for _, model := range option.CommonModels {
if strings.Contains(model, ".") {
t.Fatalf("%s common_model %q uses dotted ID", provider, model)
}
}
}
if _, ok := seen["azure"]; !ok {
t.Fatal("azure option missing")
}