diff --git a/backend/internal/domain/constants.go b/backend/internal/domain/constants.go index c51046a2..4e69ca02 100644 --- a/backend/internal/domain/constants.go +++ b/backend/internal/domain/constants.go @@ -82,8 +82,8 @@ var DefaultAntigravityModelMapping = map[string]string{ "claude-opus-4-5-20251101": "claude-opus-4-6-thinking", // 迁移旧模型 "claude-sonnet-4-5-20250929": "claude-sonnet-4-5", // Claude Haiku → Sonnet(无 Haiku 支持) - "claude-haiku-4-5": "claude-sonnet-4-5", - "claude-haiku-4-5-20251001": "claude-sonnet-4-5", + "claude-haiku-4-5": "claude-sonnet-4-6", + "claude-haiku-4-5-20251001": "claude-sonnet-4-6", // Gemini 2.5 白名单 "gemini-2.5-flash": "gemini-2.5-flash", "gemini-2.5-flash-image": "gemini-2.5-flash-image", diff --git a/backend/internal/service/antigravity_model_mapping_test.go b/backend/internal/service/antigravity_model_mapping_test.go index 71939d26..1dbe9870 100644 --- a/backend/internal/service/antigravity_model_mapping_test.go +++ b/backend/internal/service/antigravity_model_mapping_test.go @@ -57,16 +57,16 @@ func TestAntigravityGatewayService_GetMappedModel(t *testing.T) { expected: "claude-opus-4-6-thinking", }, { - name: "默认映射 - claude-haiku-4-5 → claude-sonnet-4-5", + name: "默认映射 - claude-haiku-4-5 → claude-sonnet-4-6", requestedModel: "claude-haiku-4-5", accountMapping: nil, - expected: "claude-sonnet-4-5", + expected: "claude-sonnet-4-6", }, { - name: "默认映射 - claude-haiku-4-5-20251001 → claude-sonnet-4-5", + name: "默认映射 - claude-haiku-4-5-20251001 → claude-sonnet-4-6", requestedModel: "claude-haiku-4-5-20251001", accountMapping: nil, - expected: "claude-sonnet-4-5", + expected: "claude-sonnet-4-6", }, { name: "默认映射 - claude-sonnet-4-5-20250929 → claude-sonnet-4-5", diff --git a/backend/migrations/075_map_haiku45_to_sonnet46.sql b/backend/migrations/075_map_haiku45_to_sonnet46.sql new file mode 100644 index 00000000..bbaa45e6 --- /dev/null +++ b/backend/migrations/075_map_haiku45_to_sonnet46.sql @@ -0,0 +1,17 @@ +-- Map claude-haiku-4-5 variants target from claude-sonnet-4-5 to claude-sonnet-4-6 +-- +-- Only updates when the current target is exactly claude-sonnet-4-5. + +-- 1. claude-haiku-4-5 +UPDATE accounts +SET credentials = jsonb_set(credentials, '{model_mapping,claude-haiku-4-5}', '"claude-sonnet-4-6"') +WHERE platform = 'antigravity' + AND deleted_at IS NULL + AND credentials->'model_mapping'->>'claude-haiku-4-5' = 'claude-sonnet-4-5'; + +-- 2. claude-haiku-4-5-20251001 +UPDATE accounts +SET credentials = jsonb_set(credentials, '{model_mapping,claude-haiku-4-5-20251001}', '"claude-sonnet-4-6"') +WHERE platform = 'antigravity' + AND deleted_at IS NULL + AND credentials->'model_mapping'->>'claude-haiku-4-5-20251001' = 'claude-sonnet-4-5';