fix: drop removed minimax lightning model

This commit is contained in:
Peter Steinberger
2026-03-08 04:06:05 +00:00
parent 21df014d56
commit a035a3ce48
8 changed files with 56 additions and 19 deletions

View File

@@ -39,6 +39,7 @@ Docs: https://docs.openclaw.ai
### Fixes
- Models/MiniMax: stop advertising removed `MiniMax-M2.5-Lightning` in built-in provider catalogs, onboarding metadata, and docs; keep the supported fast-tier model as `MiniMax-M2.5-highspeed`.
- Security/Config: fail closed when `loadConfig()` hits validation or read errors so invalid configs cannot silently fall back to permissive runtime defaults. (#9040) Thanks @joetomasone.
- Memory/Hybrid search: preserve negative FTS5 BM25 relevance ordering in `bm25RankToScore()` so stronger keyword matches rank above weaker ones instead of collapsing or reversing scores. (#33757) Thanks @lsdcc01.
- LINE/`requireMention` group gating: align inbound and reply-stage LINE group policy resolution across raw, `group:`, and `room:` keys (including account-scoped group config), preserve plugin-backed reply-stage fallback behavior, and add regression coverage for prefixed-only group/room config plus reply-stage policy resolution. (#35847) Thanks @kirisame-wang.

View File

@@ -2186,7 +2186,7 @@ Fix checklist:
2. Make sure MiniMax is configured (wizard or JSON), or that a MiniMax API key
exists in env/auth profiles so the provider can be injected.
3. Use the exact model id (case-sensitive): `minimax/MiniMax-M2.5` or
`minimax/MiniMax-M2.5-highspeed` (legacy: `minimax/MiniMax-M2.5-Lightning`).
`minimax/MiniMax-M2.5-highspeed`.
4. Run:
```bash

View File

@@ -31,8 +31,7 @@ MiniMax highlights these improvements in M2.5:
- **Speed:** `MiniMax-M2.5-highspeed` is the official fast tier in MiniMax docs.
- **Cost:** MiniMax pricing lists the same input cost and a higher output cost for highspeed.
- **Compatibility:** OpenClaw still accepts legacy `MiniMax-M2.5-Lightning` configs, but prefer
`MiniMax-M2.5-highspeed` for new setup.
- **Current model IDs:** use `MiniMax-M2.5` or `MiniMax-M2.5-highspeed`.
## Choose a setup
@@ -210,7 +209,6 @@ Make sure the model id is **casesensitive**:
- `minimax/MiniMax-M2.5`
- `minimax/MiniMax-M2.5-highspeed`
- `minimax/MiniMax-M2.5-Lightning` (legacy)
Then recheck with:

View File

@@ -0,0 +1,49 @@
import { mkdtempSync } from "node:fs";
import { writeFile } from "node:fs/promises";
import { tmpdir } from "node:os";
import { join } from "node:path";
import { describe, expect, it } from "vitest";
import { resolveImplicitProviders } from "./models-config.providers.js";
describe("minimax provider catalog", () => {
it("does not advertise the removed lightning model for api-key or oauth providers", async () => {
const agentDir = mkdtempSync(join(tmpdir(), "openclaw-test-"));
await writeFile(
join(agentDir, "auth-profiles.json"),
JSON.stringify(
{
version: 1,
profiles: {
"minimax:default": {
type: "api_key",
provider: "minimax",
key: "sk-minimax-test", // pragma: allowlist secret
},
"minimax-portal:default": {
type: "oauth",
provider: "minimax-portal",
access: "access-token",
refresh: "refresh-token",
expires: Date.now() + 60_000,
},
},
},
null,
2,
),
"utf8",
);
const providers = await resolveImplicitProviders({ agentDir });
expect(providers?.minimax?.models?.map((model) => model.id)).toEqual([
"MiniMax-VL-01",
"MiniMax-M2.5",
"MiniMax-M2.5-highspeed",
]);
expect(providers?.["minimax-portal"]?.models?.map((model) => model.id)).toEqual([
"MiniMax-VL-01",
"MiniMax-M2.5",
"MiniMax-M2.5-highspeed",
]);
});
});

View File

@@ -765,11 +765,6 @@ function buildMinimaxProvider(): ProviderConfig {
name: "MiniMax M2.5 Highspeed",
reasoning: true,
}),
buildMinimaxTextModel({
id: "MiniMax-M2.5-Lightning",
name: "MiniMax M2.5 Lightning",
reasoning: true,
}),
],
};
}
@@ -796,11 +791,6 @@ function buildMinimaxPortalProvider(): ProviderConfig {
name: "MiniMax M2.5 Highspeed",
reasoning: true,
}),
buildMinimaxTextModel({
id: "MiniMax-M2.5-Lightning",
name: "MiniMax M2.5 Lightning",
reasoning: true,
}),
],
};
}

View File

@@ -123,7 +123,7 @@ describe("directive behavior", () => {
workspace: path.join(home, "openclaw"),
models: {
"minimax/MiniMax-M2.5": {},
"minimax/MiniMax-M2.5-Lightning": {},
"minimax/MiniMax-M2.5-highspeed": {},
"lmstudio/minimax-m2.5-gs32": {},
},
},
@@ -157,7 +157,7 @@ describe("directive behavior", () => {
workspace: path.join(home, "openclaw"),
models: {
"minimax/MiniMax-M2.5": {},
"minimax/MiniMax-M2.5-Lightning": {},
"minimax/MiniMax-M2.5-highspeed": {},
},
},
},
@@ -170,7 +170,7 @@ describe("directive behavior", () => {
api: "anthropic-messages",
models: [
makeModelDefinition("MiniMax-M2.5", "MiniMax M2.5"),
makeModelDefinition("MiniMax-M2.5-Lightning", "MiniMax M2.5 Lightning"),
makeModelDefinition("MiniMax-M2.5-highspeed", "MiniMax M2.5 Highspeed"),
],
},
},

View File

@@ -295,7 +295,7 @@ const BASE_AUTH_CHOICE_OPTIONS: ReadonlyArray<AuthChoiceOption> = [
{
value: "minimax-api-lightning",
label: "MiniMax M2.5 Highspeed",
hint: "Official fast tier (legacy: Lightning)",
hint: "Official fast tier",
},
{ value: "custom-api-key", label: "Custom Provider" },
];

View File

@@ -91,7 +91,6 @@ export const ZAI_DEFAULT_COST = {
const MINIMAX_MODEL_CATALOG = {
"MiniMax-M2.5": { name: "MiniMax M2.5", reasoning: true },
"MiniMax-M2.5-highspeed": { name: "MiniMax M2.5 Highspeed", reasoning: true },
"MiniMax-M2.5-Lightning": { name: "MiniMax M2.5 Lightning", reasoning: true },
} as const;
type MinimaxCatalogId = keyof typeof MINIMAX_MODEL_CATALOG;