fix(providers): prune 10 retired crof model ids from the seed catalog (#10577) (#10761)

Co-authored-by: Markus Hartung <mail@hartmark.se>
This commit is contained in:
Diego Rodrigues de Sa e Souza
2026-08-19 12:49:49 -03:00
committed by GitHub
parent f0bf6d2a93
commit 5d9ed144f4
4 changed files with 37 additions and 62 deletions

View File

@@ -0,0 +1 @@
- fix(providers): remove 10 retired model ids from the crof seed catalog so /v1/models stops advertising models crof.ai no longer serves (#10577)

View File

@@ -12,24 +12,12 @@ export const crofProvider: RegistryEntry = {
// Seed list — runtime /v1/models discovery keeps this fresh.
// Source: GET https://crof.ai/v1/models (2026-08-10; includes models absent from the 2026-05-17 roster).
models: [
{
id: "deepseek-v4-pro-precision",
name: "DeepSeek V4 Pro (Precision)",
supportsReasoning: true,
supportedThinkingEfforts: CROF_REASONING_EFFORTS,
},
{
id: "deepseek-v4-pro",
name: "DeepSeek V4 Pro",
supportsReasoning: true,
supportedThinkingEfforts: CROF_REASONING_EFFORTS,
},
{
id: "deepseek-v4-pro-lightning",
name: "DeepSeek V4 Pro (Lightning)",
supportsReasoning: true,
supportedThinkingEfforts: CROF_REASONING_EFFORTS,
},
{
id: "deepseek-v4-flash",
name: "DeepSeek V4 Flash",
@@ -43,12 +31,6 @@ export const crofProvider: RegistryEntry = {
supportedThinkingEfforts: CROF_REASONING_EFFORTS,
},
{ id: "deepseek-v3.2", name: "DeepSeek V3.2" },
{
id: "kimi-k2.6-precision",
name: "Kimi K2.6 (Precision)",
supportsReasoning: true,
supportedThinkingEfforts: CROF_REASONING_EFFORTS,
},
{
id: "kimi-k2.6",
name: "Kimi K2.6",
@@ -73,24 +55,6 @@ export const crofProvider: RegistryEntry = {
supportsReasoning: true,
supportedThinkingEfforts: CROF_REASONING_EFFORTS,
},
{
id: "kimi-k2.5-lightning",
name: "Kimi K2.5 (Lightning)",
supportsReasoning: true,
supportedThinkingEfforts: CROF_REASONING_EFFORTS,
},
{
id: "kimi-k2.5",
name: "Kimi K2.5",
supportsReasoning: true,
supportedThinkingEfforts: CROF_REASONING_EFFORTS,
},
{
id: "glm-5.1-precision",
name: "GLM 5.1 (Precision)",
supportsReasoning: true,
supportedThinkingEfforts: CROF_REASONING_EFFORTS,
},
{
id: "glm-5.1",
name: "GLM 5.1",
@@ -103,24 +67,6 @@ export const crofProvider: RegistryEntry = {
supportsReasoning: true,
supportedThinkingEfforts: CROF_REASONING_EFFORTS,
},
{
id: "glm-4.7",
name: "GLM 4.7",
supportsReasoning: true,
supportedThinkingEfforts: CROF_REASONING_EFFORTS,
},
{
id: "glm-4.7-flash",
name: "GLM 4.7 Flash",
supportsReasoning: true,
supportedThinkingEfforts: CROF_REASONING_EFFORTS,
},
{
id: "mimo-v2.5-pro-precision",
name: "Mimo 2.5 Pro (Precision)",
supportsReasoning: true,
supportedThinkingEfforts: CROF_REASONING_EFFORTS,
},
{
id: "mimo-v2.5-pro",
name: "Mimo 2.5 Pro",
@@ -133,7 +79,6 @@ export const crofProvider: RegistryEntry = {
supportsReasoning: true,
supportedThinkingEfforts: CROF_REASONING_EFFORTS,
},
{ id: "minimax-m2.5", name: "MiniMax M2.5" },
{
id: "qwen3.6-27b",
name: "Qwen3.6 27B",

View File

@@ -57,20 +57,15 @@ test("CrofAI seed list covers every live reasoning-capable model id", () => {
// Regression guard: every model the live /v1/models roster flags with
// `reasoning_effort: true` must have a seed entry with effort tiers, so a
// stale synced cache never silently drops their effort aliases. Snapshot of
// GET https://crof.ai/v1/models (2026-08-10) — update deliberately when the
// roster changes.
// GET https://crof.ai/v1/models (2026-08-19; #10577 removed 10 retired ids
// no longer served live) — update deliberately when the roster changes.
const liveReasoningIds = [
"deepseek-v4-flash",
"deepseek-v4-flash-0731",
"deepseek-v4-pro",
"deepseek-v4-pro-lightning",
"gemma-4-31b-it",
"glm-4.7",
"glm-4.7-flash",
"glm-5.1",
"glm-5.2",
"kimi-k2.5",
"kimi-k2.5-lightning",
"kimi-k2.6",
"kimi-k2.7-code",
"kimi-k3",

View File

@@ -0,0 +1,34 @@
import test from "node:test";
import assert from "node:assert/strict";
const { REGISTRY: providerRegistry } = await import("../../open-sse/config/providerRegistry.ts");
// Regression guard for #10577: the crof seed catalog advertised 10 model ids that
// crof.ai has retired. Routing already 400s these via the live-synced catalog gate,
// but /v1/models listing kept advertising them. Confirmed live against
// GET https://crof.ai/v1/models (2026-08-19): these 10 ids are absent from the
// current live roster.
const STALE_MODEL_IDS = [
"deepseek-v4-pro-precision",
"deepseek-v4-pro-lightning",
"kimi-k2.6-precision",
"kimi-k2.5-lightning",
"kimi-k2.5",
"glm-5.1-precision",
"glm-4.7",
"glm-4.7-flash",
"mimo-v2.5-pro-precision",
"minimax-m2.5",
];
test("issue #10577: crof seed catalog must not list retired model ids", () => {
const crof = providerRegistry.crof;
assert.ok(crof, "crof provider must exist in the registry");
const seedIds = crof.models.map((m) => m.id);
for (const staleId of STALE_MODEL_IDS) {
assert.ok(
!seedIds.includes(staleId),
`crof seed catalog must not list retired model id "${staleId}"`
);
}
});