fix(antigravity): hide deprecated Gemini-Claude models (#1631)

fix(antigravity): hide deprecated Gemini-Claude models, redirect legacy aliases to Claude 4.6 — integrated into release/v3.7.1
This commit is contained in:
backryun
2026-04-27 03:59:07 +09:00
committed by GitHub
parent 1c86cd5fec
commit 4692621e4f
5 changed files with 30 additions and 36 deletions

View File

@@ -1,25 +1,16 @@
export const ANTIGRAVITY_PUBLIC_MODELS = Object.freeze([
{ id: "claude-opus-4-6-thinking", name: "Claude Opus 4.6 Thinking" },
{ id: "claude-sonnet-4-6", name: "Claude Sonnet 4.6" },
{ id: "gemini-3-flash-preview", name: "Gemini 3 Flash Preview" },
{ id: "gemini-3-pro-preview", name: "Gemini 3 Pro Preview" },
{ id: "gemini-3-pro-image-preview", name: "Gemini 3 Pro Image Preview" },
{ id: "claude-sonnet-4-6", name: "Claude Sonnet 4.6 Thinking" },
{ id: "gemini-3-pro-preview", name: "Gemini 3.1 Pro (High)" },
{ id: "gemini-3.1-pro-low", name: "Gemini 3.1 Pro (Low)" },
{ id: "gemini-3-flash-preview", name: "Gemini 3 Flash" },
{ id: "gpt-oss-120b-medium", name: "GPT OSS 120B Medium" },
{ id: "gemini-3-pro-image-preview", name: "Gemini 3 Pro Image" },
{ id: "gemini-3.1-flash-image", name: "Gemini 3.1 Flash Image" },
{
id: "gemini-2.5-computer-use-preview-10-2025",
name: "Gemini 2.5 Computer Use Preview (10/2025)",
},
{ id: "gemini-3.1-flash-image", name: "Gemini 3.1 Flash Image" },
{ id: "gemini-3.1-pro-low", name: "Gemini 3.1 Pro (Low)" },
{ id: "gemini-claude-sonnet-4-5", name: "Claude Sonnet 4.5 (Gemini Route)" },
{
id: "gemini-claude-sonnet-4-5-thinking",
name: "Claude Sonnet 4.5 Thinking (Gemini Route)",
},
{
id: "gemini-claude-opus-4-5-thinking",
name: "Claude Opus 4.5 Thinking (Gemini Route)",
},
{ id: "gpt-oss-120b-medium", name: "GPT OSS 120B Medium" },
]);
export const ANTIGRAVITY_MODEL_ALIASES = Object.freeze({
@@ -27,24 +18,19 @@ export const ANTIGRAVITY_MODEL_ALIASES = Object.freeze({
"gemini-3-flash-preview": "gemini-3-flash",
"gemini-3-pro-image-preview": "gemini-3-pro-image",
"gemini-2.5-computer-use-preview-10-2025": "rev19-uic3-1p",
"gemini-claude-sonnet-4-5": "claude-sonnet-4-5",
"gemini-claude-sonnet-4-5-thinking": "claude-sonnet-4-5-thinking",
"gemini-claude-opus-4-5-thinking": "claude-opus-4-5-thinking",
"gemini-claude-sonnet-4-5": "claude-sonnet-4-6",
"gemini-claude-sonnet-4-5-thinking": "claude-sonnet-4-6",
"gemini-claude-opus-4-5-thinking": "claude-opus-4-6-thinking",
});
type AntigravityModelAliasMap = Record<string, string>;
export const ANTIGRAVITY_REVERSE_MODEL_ALIASES = Object.freeze(
Object.entries(ANTIGRAVITY_MODEL_ALIASES).reduce<Record<string, string>>(
(acc, [alias, target]) => {
if (!acc[target]) {
acc[target] = alias;
}
return acc;
},
{}
)
);
export const ANTIGRAVITY_REVERSE_MODEL_ALIASES: AntigravityModelAliasMap = Object.freeze({
"gemini-3.1-pro-high": "gemini-3-pro-preview",
"gemini-3-flash": "gemini-3-flash-preview",
"gemini-3-pro-image": "gemini-3-pro-image-preview",
"rev19-uic3-1p": "gemini-2.5-computer-use-preview-10-2025",
});
const CLIENT_VISIBLE_MODEL_NAMES = Object.freeze(
ANTIGRAVITY_PUBLIC_MODELS.reduce<Record<string, string>>((acc, model) => {

View File

@@ -15,14 +15,11 @@ test("resolveAntigravityModelId maps the documented Antigravity aliases to upstr
resolveAntigravityModelId("gemini-2.5-computer-use-preview-10-2025"),
"rev19-uic3-1p"
);
assert.equal(resolveAntigravityModelId("gemini-claude-sonnet-4-5"), "claude-sonnet-4-5");
assert.equal(
resolveAntigravityModelId("gemini-claude-sonnet-4-5-thinking"),
"claude-sonnet-4-5-thinking"
);
assert.equal(resolveAntigravityModelId("gemini-claude-sonnet-4-5"), "claude-sonnet-4-6");
assert.equal(resolveAntigravityModelId("gemini-claude-sonnet-4-5-thinking"), "claude-sonnet-4-6");
assert.equal(
resolveAntigravityModelId("gemini-claude-opus-4-5-thinking"),
"claude-opus-4-5-thinking"
"claude-opus-4-6-thinking"
);
assert.equal(resolveAntigravityModelId("unknown-model"), "unknown-model");
});
@@ -31,6 +28,8 @@ test("toClientAntigravityModelId exposes client-visible aliases for known upstre
assert.equal(toClientAntigravityModelId("gemini-3.1-pro-high"), "gemini-3-pro-preview");
assert.equal(toClientAntigravityModelId("gemini-3-flash"), "gemini-3-flash-preview");
assert.equal(toClientAntigravityModelId("gpt-oss-120b-medium"), "gpt-oss-120b-medium");
assert.equal(toClientAntigravityModelId("claude-sonnet-4-6"), "claude-sonnet-4-6");
assert.equal(toClientAntigravityModelId("claude-opus-4-6-thinking"), "claude-opus-4-6-thinking");
});
test("AntigravityExecutor.transformRequest resolves alias models before dispatching upstream", async () => {

View File

@@ -305,6 +305,9 @@ test("v1 models catalog exposes Antigravity client-visible preview aliases inste
assert.ok(ids.has("antigravity/gemini-3-pro-preview"));
assert.ok(ids.has("antigravity/gemini-3-flash-preview"));
assert.equal(ids.has("antigravity/gemini-3.1-pro-high"), false);
assert.equal(ids.has("antigravity/gemini-claude-sonnet-4-5"), false);
assert.equal(ids.has("antigravity/gemini-claude-sonnet-4-5-thinking"), false);
assert.equal(ids.has("antigravity/gemini-claude-opus-4-5-thinking"), false);
});
test("v1 models catalog uses provider-node prefixes for compatible provider custom models", async () => {

View File

@@ -25,6 +25,9 @@ test("T28: antigravity static catalog exposes client-visible Gemini preview IDs"
assert.ok(staticIds.includes("gemini-3-flash-preview"));
assert.ok(!staticIds.includes("gemini-3-pro-high"));
assert.ok(!staticIds.includes("gemini-3.1-pro-high"));
assert.ok(!staticIds.includes("gemini-claude-sonnet-4-5"));
assert.ok(!staticIds.includes("gemini-claude-sonnet-4-5-thinking"));
assert.ok(!staticIds.includes("gemini-claude-opus-4-5-thinking"));
});
test("T28: github registry exposes Gemini 3.1 Pro Preview and keeps legacy alias compatibility", async () => {

View File

@@ -22,6 +22,9 @@ test("T31: antigravity static catalog exposes client-visible Gemini preview IDs"
const staticIds = (getStaticModelsForProvider("antigravity") || []).map((m) => m.id);
assert.ok(staticIds.includes("gemini-3-pro-preview"));
assert.ok(staticIds.includes("gemini-3.1-pro-low"));
assert.ok(!staticIds.includes("gemini-claude-sonnet-4-5"));
assert.ok(!staticIds.includes("gemini-claude-sonnet-4-5-thinking"));
assert.ok(!staticIds.includes("gemini-claude-opus-4-5-thinking"));
});
test("T31: legacy Gemini aliases resolve to Gemini 3.1 IDs", () => {