From 222d0e1eb34d68a57d7fb6304d80090798093e10 Mon Sep 17 00:00:00 2001 From: hetaoBackend Date: Mon, 19 Oct 2026 22:37:04 +0800 Subject: [PATCH] feat(config): promote M3.1 Flash to the default delivered model Replace the MiniMax-M3.1-Flash-Preview entry in the built-in MiniMax fallback catalog with the generally available MiniMax-M3.1-Flash, and point the managed preset default model at it. The model definition (capabilities, context options, thinking efforts) is unchanged and matches the remote managed snapshot for MiniMax-M3.1-Flash. --- packages/config/src/config.ts | 2 +- packages/config/src/minimax-model-catalog.ts | 4 ++-- packages/config/test/builtin-model-fallback.test.ts | 8 ++++---- .../model-system/catalog/agent-model-selection.test.ts | 6 +++--- .../service/model-system/catalog/model-selection.test.ts | 4 ++-- .../src/service/model-system/management/service.test.ts | 6 +++--- .../assembly/local-turn-payload-transform.test.ts | 8 ++++---- test/byok.test.mjs | 2 +- 8 files changed, 20 insertions(+), 20 deletions(-) diff --git a/packages/config/src/config.ts b/packages/config/src/config.ts index deb73c403..84660a0cb 100644 --- a/packages/config/src/config.ts +++ b/packages/config/src/config.ts @@ -1648,7 +1648,7 @@ function buildPresetEntry(key: PresetKey) { }; return { provider: { minimax: provider } as ModelsConfig, - defaultModel: "minimax/MiniMax-M3.1-Flash-Preview", + defaultModel: "minimax/MiniMax-M3.1-Flash", }; } diff --git a/packages/config/src/minimax-model-catalog.ts b/packages/config/src/minimax-model-catalog.ts index 4eeb62d07..186a5721d 100644 --- a/packages/config/src/minimax-model-catalog.ts +++ b/packages/config/src/minimax-model-catalog.ts @@ -29,8 +29,8 @@ export const MINIMAX_MODELS: Record = { }, capabilities: MINIMAX_M3_FILE_API_CAPABILITIES, }, - "MiniMax-M3.1-Flash-Preview": { - name: "M3.1-Flash-Preview", + "MiniMax-M3.1-Flash": { + name: "M3.1-Flash", attachment: true, reasoning: true, tool_call: true, diff --git a/packages/config/test/builtin-model-fallback.test.ts b/packages/config/test/builtin-model-fallback.test.ts index 42095a582..f5d43a254 100644 --- a/packages/config/test/builtin-model-fallback.test.ts +++ b/packages/config/test/builtin-model-fallback.test.ts @@ -10,7 +10,7 @@ import { } from "../src/config.js"; import { resolveModelAvailability } from "../src/model-availability.js"; -const modelId = "MiniMax-M3.1-Flash-Preview"; +const modelId = "MiniMax-M3.1-Flash"; let dataDir: string; beforeEach(() => { @@ -31,11 +31,11 @@ afterEach(() => { }); describe("built-in model fallback", () => { - it("seeds M3.1 Flash Preview before a remote snapshot exists and preserves it on reload", () => { + it("seeds M3.1 Flash before a remote snapshot exists and preserves it on reload", () => { const config = getConfig(); const model = config.provider.minimax?.models?.[modelId]; expect(model).toMatchObject({ - name: "M3.1-Flash-Preview", + name: "M3.1-Flash", attachment: true, reasoning: true, tool_call: true, @@ -58,7 +58,7 @@ describe("built-in model fallback", () => { max_attachments_count: 4, }, }); - expect(config.defaultModel).toBe("minimax/MiniMax-M3.1-Flash-Preview"); + expect(config.defaultModel).toBe("minimax/MiniMax-M3.1-Flash"); resetConfig(); expect(getConfig().provider.minimax?.models?.[modelId]).toEqual(model); }); diff --git a/packages/local-runtime-v2/src/service/model-system/catalog/agent-model-selection.test.ts b/packages/local-runtime-v2/src/service/model-system/catalog/agent-model-selection.test.ts index f0ca168ab..31275b200 100644 --- a/packages/local-runtime-v2/src/service/model-system/catalog/agent-model-selection.test.ts +++ b/packages/local-runtime-v2/src/service/model-system/catalog/agent-model-selection.test.ts @@ -137,7 +137,7 @@ describe('resolveAgentModelSelection', () => { ...config.provider, minimax: { models: { - 'MiniMax-M3.1-Flash-Preview': { limit: { context: 512_000, output: 128_000 } }, + 'MiniMax-M3.1-Flash': { limit: { context: 512_000, output: 128_000 } }, 'MiniMax-M3': { limit: { context: 512_000, output: 128_000 } }, }, }, @@ -147,7 +147,7 @@ describe('resolveAgentModelSelection', () => { resolveEffectiveAgentModelSelection({ config: legacyConfig, sources: [] }), ).toMatchObject({ providerId: 'minimax', - modelId: 'MiniMax-M3.1-Flash-Preview', + modelId: 'MiniMax-M3.1-Flash', contextWindow: 512_000, }); expect(legacyConfig.defaultModel).toBe('custom_provider:minimax-legacy/retired'); @@ -215,7 +215,7 @@ function registerContextTierSelectionTests(): void { ); it.each([ - ['minimax', 'MiniMax-M3.1-Flash-Preview', [2_000_000, 128_000], 2_000_000], + ['minimax', 'MiniMax-M3.1-Flash', [2_000_000, 128_000], 2_000_000], ['minimax_api', 'future-model', [2_000_000, 128_000], 2_000_000], ['minimax_api', 'MiniMax-M3', [128_000, 256_000], 256_000], ['minimax_api', 'MiniMax-M3', undefined, 128_000], diff --git a/packages/local-runtime-v2/src/service/model-system/catalog/model-selection.test.ts b/packages/local-runtime-v2/src/service/model-system/catalog/model-selection.test.ts index 5b5b82e7f..4f17c9888 100644 --- a/packages/local-runtime-v2/src/service/model-system/catalog/model-selection.test.ts +++ b/packages/local-runtime-v2/src/service/model-system/catalog/model-selection.test.ts @@ -86,7 +86,7 @@ describe('legacy MiniMax compatibility', () => { const config: LocalRuntimeConfig = { dataDir: '/tmp/legacy-model-selection', defaultModel: `custom_provider:${key}/retired`, - provider: { minimax: { models: { 'MiniMax-M3.1-Flash-Preview': {}, 'MiniMax-M3': {} } } }, + provider: { minimax: { models: { 'MiniMax-M3.1-Flash': {}, 'MiniMax-M3': {} } } }, custom_provider: { [key]: { options: { @@ -105,7 +105,7 @@ describe('legacy MiniMax compatibility', () => { }), ).toEqual({ providerId: 'minimax', - modelId: 'MiniMax-M3.1-Flash-Preview', + modelId: 'MiniMax-M3.1-Flash', }); expect(config).toEqual(before); config.custom_provider![key]!.options!.baseURL = 'https://proxy.example/v1'; diff --git a/packages/local-runtime-v2/src/service/model-system/management/service.test.ts b/packages/local-runtime-v2/src/service/model-system/management/service.test.ts index 04adb8efd..5e04bb4bd 100644 --- a/packages/local-runtime-v2/src/service/model-system/management/service.test.ts +++ b/packages/local-runtime-v2/src/service/model-system/management/service.test.ts @@ -1196,7 +1196,7 @@ describe('custom provider candidate persistence', () => { expect(outcome.provider?.models).toEqual([]); expect(h.config.custom_provider?.work?.models).toEqual({}); expect(h.testCalls).toEqual([]); - expect(h.config.defaultModel).toBe('minimax/MiniMax-M3.1-Flash-Preview'); + expect(h.config.defaultModel).toBe('minimax/MiniMax-M3.1-Flash'); expect(h.config.defaultModelVariant).toBeUndefined(); }); @@ -2225,7 +2225,7 @@ describe('custom provider default model recovery', () => { models: [{ modelId: 'kept' }], }); - expect(h.config.defaultModel).toBe('minimax/MiniMax-M3.1-Flash-Preview'); + expect(h.config.defaultModel).toBe('minimax/MiniMax-M3.1-Flash'); expect(h.config.defaultModelVariant).toBeUndefined(); }); }); @@ -2397,7 +2397,7 @@ describe('custom provider deletion', () => { await h.service.deleteUserProvider({ providerId: 'custom_provider:work' }); expect(h.config.custom_provider?.work).toBeUndefined(); expect(h.cache.load().provider_status['custom_provider:work']).toBeUndefined(); - expect(h.config.defaultModel).toBe('minimax/MiniMax-M3.1-Flash-Preview'); + expect(h.config.defaultModel).toBe('minimax/MiniMax-M3.1-Flash'); expect(h.config.defaultModelVariant).toBeUndefined(); }); diff --git a/packages/local-runtime-v2/src/service/turn-system/agent-host/assembly/local-turn-payload-transform.test.ts b/packages/local-runtime-v2/src/service/turn-system/agent-host/assembly/local-turn-payload-transform.test.ts index 8855165d4..404ea8b6a 100644 --- a/packages/local-runtime-v2/src/service/turn-system/agent-host/assembly/local-turn-payload-transform.test.ts +++ b/packages/local-runtime-v2/src/service/turn-system/agent-host/assembly/local-turn-payload-transform.test.ts @@ -8,7 +8,7 @@ import { buildLocalRequestPayloadTransform } from './local-turn-payload-transfor // Mirrors the bundled MiniMax catalog entries that matter for thinking. const M31_FLASH = { - name: 'M3.1-Flash-Preview', + name: 'M3.1-Flash', reasoning: true, tool_call: true, modalities: { input: ['text', 'image'], output: ['text'] }, @@ -99,7 +99,7 @@ describe('API-key MiniMax thinking effort', () => { async (effort) => { const body = await captureWireBody({ provider: 'minimax_api', - modelId: 'MiniMax-M3.1-Flash-Preview', + modelId: 'MiniMax-M3.1-Flash', modelConfig: M31_FLASH, effort, }); @@ -111,7 +111,7 @@ describe('API-key MiniMax thinking effort', () => { it('keeps --effort when a MiniMax model is routed through the API key source', async () => { const body = await captureWireBody({ provider: 'minimax', - modelId: 'MiniMax-M3.1-Flash-Preview', + modelId: 'MiniMax-M3.1-Flash', modelConfig: M31_FLASH, effort: 'high', minimaxModelSource: 'minimax_api_key', @@ -122,7 +122,7 @@ describe('API-key MiniMax thinking effort', () => { it('sends no effort when none was selected (default)', async () => { const body = await captureWireBody({ provider: 'minimax_api', - modelId: 'MiniMax-M3.1-Flash-Preview', + modelId: 'MiniMax-M3.1-Flash', modelConfig: M31_FLASH, }); expect(body.thinking).toEqual({ type: 'adaptive' }); diff --git a/test/byok.test.mjs b/test/byok.test.mjs index 8a5dc646d..325a22f74 100644 --- a/test/byok.test.mjs +++ b/test/byok.test.mjs @@ -315,7 +315,7 @@ test( } const configPath = path.join(dataDir, "config.yaml"); const savedConfig = () => parseYaml(readFileSync(configPath, "utf8")); - assert.equal(savedConfig().defaultModel, "minimax/MiniMax-M3.1-Flash-Preview"); + assert.equal(savedConfig().defaultModel, "minimax/MiniMax-M3.1-Flash"); assert.equal(savedConfig().custom_provider.fixture.models["fixture-model"].limit, undefined); assert.equal(selected.active, false); assert.equal(selected.models[0].contextLimit, undefined);