From d64bdddf79cc196b635aa2c939b3c7dd78c7f842 Mon Sep 17 00:00:00 2001 From: octo-patch <266937838+octo-patch@users.noreply.github.com> Date: Tue, 28 Jul 2026 10:32:52 +0000 Subject: [PATCH] fix(models): mark MiniMax M3 vision-capable The target metadata lists text, image, and video input for MiniMax M3, but the model was registered without the vision flag. ClawRouter's image_url detection and filterByVision path therefore excluded M3 from the candidate pool whenever a request carried an image_url content part. Add vision: true so image requests reach the model. M2.7 stays text-only and is left unchanged. --- src/models.test.ts | 9 +++++++++ src/models.ts | 1 + 2 files changed, 10 insertions(+) diff --git a/src/models.test.ts b/src/models.test.ts index a91ed8b1..c63310dd 100644 --- a/src/models.test.ts +++ b/src/models.test.ts @@ -277,6 +277,15 @@ describe("capability flags vs blockrun's catalog", () => { expect(BLOCKRUN_MODELS.find((m) => m.id === id)?.vision).toBe(true); } }); + + it("marks MiniMax M3 vision-capable so image_url requests reach it", () => { + // The target metadata lists text+image+video input for MiniMax M3, but the + // model was registered without `vision`, so filterByVision() excluded it + // whenever a request carried an image_url content part. M2.7 is text-only + // upstream and must stay without the flag. + expect(BLOCKRUN_MODELS.find((m) => m.id === "minimax/minimax-m3")?.vision).toBe(true); + expect(BLOCKRUN_MODELS.find((m) => m.id === "minimax/minimax-m2.7")?.vision).toBeUndefined(); + }); }); describe("OPENCLAW_MODELS integrity", () => { diff --git a/src/models.ts b/src/models.ts index 5333d31e..0f102cad 100644 --- a/src/models.ts +++ b/src/models.ts @@ -1358,6 +1358,7 @@ export const BLOCKRUN_MODELS: BlockRunModel[] = [ contextWindow: 1048576, maxOutput: 65536, reasoning: true, + vision: true, agentic: true, toolCalling: true, },