diff --git a/src/api/providers/__tests__/minimax.spec.ts b/src/api/providers/__tests__/minimax.spec.ts index 37f6f12798..6c3afd7606 100644 --- a/src/api/providers/__tests__/minimax.spec.ts +++ b/src/api/providers/__tests__/minimax.spec.ts @@ -196,6 +196,16 @@ describe("MiniMaxHandler", () => { const model = handlerDefault.getModel() expect(model.id).toBe("MiniMax-M2.7") }) + + it("should pass through unknown model ID and fall back to default model info", () => { + const handlerCustom = new MiniMaxHandler({ + minimaxApiKey: "test-minimax-api-key", + apiModelId: "some-future-minimax-model", + }) + const model = handlerCustom.getModel() + expect(model.id).toBe("some-future-minimax-model") + expect(model.info).toEqual(minimaxModels[minimaxDefaultModelId]) + }) }) describe("API Methods", () => { diff --git a/src/api/providers/minimax.ts b/src/api/providers/minimax.ts index bfcf4e3be4..d28b4ebe96 100644 --- a/src/api/providers/minimax.ts +++ b/src/api/providers/minimax.ts @@ -271,8 +271,8 @@ export class MiniMaxHandler extends BaseProvider implements SingleCompletionHand getModel() { const modelId = this.options.apiModelId - const id = modelId && modelId in minimaxModels ? (modelId as MinimaxModelId) : minimaxDefaultModelId - const info = minimaxModels[id] + const id = modelId || minimaxDefaultModelId + const info = minimaxModels[id as MinimaxModelId] ?? minimaxModels[minimaxDefaultModelId] const params = getModelParams({ format: "anthropic", diff --git a/webview-ui/src/components/ui/hooks/__tests__/useSelectedModel.spec.ts b/webview-ui/src/components/ui/hooks/__tests__/useSelectedModel.spec.ts index ed408d4e59..11bf817a35 100644 --- a/webview-ui/src/components/ui/hooks/__tests__/useSelectedModel.spec.ts +++ b/webview-ui/src/components/ui/hooks/__tests__/useSelectedModel.spec.ts @@ -773,5 +773,19 @@ describe("useSelectedModel", () => { expect(result.current.id).toBe("MiniMax-M2.7") expect(result.current.info).toEqual(minimaxModels["MiniMax-M2.7"]) }) + + it("should fall back to default model info for unknown model IDs", () => { + const apiConfiguration: ProviderSettings = { + apiProvider: "minimax", + apiModelId: "some-future-minimax-model", + } + + const wrapper = createWrapper() + const { result } = renderHook(() => useSelectedModel(apiConfiguration), { wrapper }) + + expect(result.current.provider).toBe("minimax") + expect(result.current.id).toBe("some-future-minimax-model") + expect(result.current.info).toEqual(minimaxModels[minimaxDefaultModelId]) + }) }) }) diff --git a/webview-ui/src/components/ui/hooks/useSelectedModel.ts b/webview-ui/src/components/ui/hooks/useSelectedModel.ts index c32a08990c..ce4d114d87 100644 --- a/webview-ui/src/components/ui/hooks/useSelectedModel.ts +++ b/webview-ui/src/components/ui/hooks/useSelectedModel.ts @@ -243,7 +243,9 @@ function getSelectedModel({ } case "minimax": { const id = apiConfiguration.apiModelId ?? defaultModelId - const info = minimaxModels[id as keyof typeof minimaxModels] + const info = + minimaxModels[id as keyof typeof minimaxModels] ?? + minimaxModels[defaultModelId as keyof typeof minimaxModels] return { id, info } } case "zai": {