From 2a48c29896acc0fae40a5275a4757607be88be0d Mon Sep 17 00:00:00 2001 From: PR Bot Date: Wed, 18 Mar 2026 16:49:34 +0800 Subject: [PATCH] feat: upgrade MiniMax default model to M2.7 - Add MiniMax-M2.7 and MiniMax-M2.7-highspeed to ModelName type - Set MiniMax-M2.7 as default model for all agents (base2-free, editor-lite, code-reviewer-lite, librarian, tmux-cli) - Update FREE_MODE_AGENT_MODELS allowlist to M2.7 - Keep all previous models (M2.5) as available alternatives - Update documentation (what-models, modes, FAQ, how-does-it-work, freebuff README/SPEC) - Update related unit tests --- .agents/types/agent-definition.ts | 2 ++ agents/__tests__/editor.test.ts | 2 +- agents/base2/base2.ts | 2 +- agents/editor/editor.ts | 2 +- agents/librarian/librarian.ts | 2 +- agents/reviewer/code-reviewer-lite.ts | 2 +- agents/tmux-cli.ts | 2 +- agents/types/agent-definition.ts | 2 ++ common/src/constants/free-agents.ts | 8 ++++---- .../initial-agents-dir/types/agent-definition.ts | 2 ++ freebuff/README.md | 2 +- freebuff/SPEC.md | 2 +- freebuff/web/src/app/home-client.tsx | 2 +- web/src/content/advanced/how-does-it-work.mdx | 2 +- web/src/content/advanced/what-models.mdx | 6 +++--- web/src/content/help/faq.mdx | 2 +- web/src/content/tips/modes.mdx | 4 ++-- 17 files changed, 26 insertions(+), 20 deletions(-) diff --git a/.agents/types/agent-definition.ts b/.agents/types/agent-definition.ts index 9e7e82ad4..e5e28d2dc 100644 --- a/.agents/types/agent-definition.ts +++ b/.agents/types/agent-definition.ts @@ -429,6 +429,8 @@ export type ModelName = | 'z-ai/glm-4.7:nitro' | 'z-ai/glm-4.7-flash' | 'z-ai/glm-4.7-flash:nitro' + | 'minimax/minimax-m2.7' + | 'minimax/minimax-m2.7-highspeed' | 'minimax/minimax-m2.5' | (string & {}) diff --git a/agents/__tests__/editor.test.ts b/agents/__tests__/editor.test.ts index 8a6b65760..9537c0a1f 100644 --- a/agents/__tests__/editor.test.ts +++ b/agents/__tests__/editor.test.ts @@ -64,7 +64,7 @@ describe('editor agent', () => { test('creates minimax editor', () => { const minimaxEditor = createCodeEditor({ model: 'minimax' }) - expect(minimaxEditor.model).toBe('minimax/minimax-m2.5') + expect(minimaxEditor.model).toBe('minimax/minimax-m2.7') }) test('gpt-5 editor does not include think tags in instructions', () => { diff --git a/agents/base2/base2.ts b/agents/base2/base2.ts index ba313e134..86d8f8589 100644 --- a/agents/base2/base2.ts +++ b/agents/base2/base2.ts @@ -28,7 +28,7 @@ export function createBase2( return { publisher, - model: isFree ? 'minimax/minimax-m2.5' : 'anthropic/claude-opus-4.6', + model: isFree ? 'minimax/minimax-m2.7' : 'anthropic/claude-opus-4.6', providerOptions: isFree ? { data_collection: 'deny', } : { diff --git a/agents/editor/editor.ts b/agents/editor/editor.ts index 6beb22d22..2fc62d4d2 100644 --- a/agents/editor/editor.ts +++ b/agents/editor/editor.ts @@ -13,7 +13,7 @@ export const createCodeEditor = (options: { options.model === 'gpt-5' ? 'openai/gpt-5.1' : options.model === 'minimax' - ? 'minimax/minimax-m2.5' + ? 'minimax/minimax-m2.7' : 'anthropic/claude-opus-4.6', ...(options.model === 'opus' && { providerOptions: { diff --git a/agents/librarian/librarian.ts b/agents/librarian/librarian.ts index 69dd15718..8498648c4 100644 --- a/agents/librarian/librarian.ts +++ b/agents/librarian/librarian.ts @@ -9,7 +9,7 @@ const librarian: AgentDefinition = { id: 'librarian', publisher, displayName: 'Librarian', - model: 'minimax/minimax-m2.5', + model: 'minimax/minimax-m2.7', spawnerPrompt: 'Spawn the librarian agent to shallow-clone a GitHub repository into /tmp and answer questions about its code, structure, or documentation. The agent returns structured output with `answer`, `relevantFiles` (absolute paths in the cloned repo), and `cloneDir`. You can use `run_terminal_command` with `cat` to read the returned `relevantFiles` paths. Clean up `cloneDir` with `rm -rf` when done.', diff --git a/agents/reviewer/code-reviewer-lite.ts b/agents/reviewer/code-reviewer-lite.ts index f1baa7dff..ee017c24e 100644 --- a/agents/reviewer/code-reviewer-lite.ts +++ b/agents/reviewer/code-reviewer-lite.ts @@ -5,7 +5,7 @@ import { createReviewer } from './code-reviewer' const definition: SecretAgentDefinition = { id: 'code-reviewer-lite', publisher, - ...createReviewer('minimax/minimax-m2.5'), + ...createReviewer('minimax/minimax-m2.7'), } export default definition diff --git a/agents/tmux-cli.ts b/agents/tmux-cli.ts index be0785928..e0b63782d 100644 --- a/agents/tmux-cli.ts +++ b/agents/tmux-cli.ts @@ -71,7 +71,7 @@ const outputSchema = { const definition: AgentDefinition = { id: 'tmux-cli', displayName: 'Tmux CLI Agent', - model: 'minimax/minimax-m2.5', + model: 'minimax/minimax-m2.7', // Provider options are tightly coupled to the model choice above. // If you change the model, update these accordingly. providerOptions: { diff --git a/agents/types/agent-definition.ts b/agents/types/agent-definition.ts index 9e7e82ad4..e5e28d2dc 100644 --- a/agents/types/agent-definition.ts +++ b/agents/types/agent-definition.ts @@ -429,6 +429,8 @@ export type ModelName = | 'z-ai/glm-4.7:nitro' | 'z-ai/glm-4.7-flash' | 'z-ai/glm-4.7-flash:nitro' + | 'minimax/minimax-m2.7' + | 'minimax/minimax-m2.7-highspeed' | 'minimax/minimax-m2.5' | (string & {}) diff --git a/common/src/constants/free-agents.ts b/common/src/constants/free-agents.ts index 2f44ca8a9..f8116ece0 100644 --- a/common/src/constants/free-agents.ts +++ b/common/src/constants/free-agents.ts @@ -18,7 +18,7 @@ export const FREE_COST_MODE = 'free' as const */ export const FREE_MODE_AGENT_MODELS: Record> = { // Root orchestrator - 'base2-free': new Set(['minimax/minimax-m2.5']), + 'base2-free': new Set(['minimax/minimax-m2.7']), // File exploration agents 'file-picker': new Set(['google/gemini-2.5-flash-lite']), @@ -33,10 +33,10 @@ export const FREE_MODE_AGENT_MODELS: Record> = { 'basher': new Set(['google/gemini-3.1-flash-lite-preview']), // Editor for free mode - 'editor-lite': new Set(['minimax/minimax-m2.5']), + 'editor-lite': new Set(['minimax/minimax-m2.7']), // Code reviewer for free mode - 'code-reviewer-lite': new Set(['minimax/minimax-m2.5']), + 'code-reviewer-lite': new Set(['minimax/minimax-m2.7']), } /** @@ -103,7 +103,7 @@ export function isFreeModeAllowedAgentModel( // Exact match first if (allowedModels.has(model)) return true - // OpenRouter may return dated variants (e.g. "minimax/minimax-m2.5-20260211") + // OpenRouter may return dated variants (e.g. "minimax/minimax-m2.7-20260318") // so also check if the returned model starts with any allowed model prefix. for (const allowed of allowedModels) { if (model.startsWith(allowed + '-')) return true diff --git a/common/src/templates/initial-agents-dir/types/agent-definition.ts b/common/src/templates/initial-agents-dir/types/agent-definition.ts index 9e7e82ad4..e5e28d2dc 100644 --- a/common/src/templates/initial-agents-dir/types/agent-definition.ts +++ b/common/src/templates/initial-agents-dir/types/agent-definition.ts @@ -429,6 +429,8 @@ export type ModelName = | 'z-ai/glm-4.7:nitro' | 'z-ai/glm-4.7-flash' | 'z-ai/glm-4.7-flash:nitro' + | 'minimax/minimax-m2.7' + | 'minimax/minimax-m2.7-highspeed' | 'minimax/minimax-m2.5' | (string & {}) diff --git a/freebuff/README.md b/freebuff/README.md index 27abb478b..5b9c8d4ec 100644 --- a/freebuff/README.md +++ b/freebuff/README.md @@ -54,7 +54,7 @@ freebuff **How can it be free?** Freebuff is supported by ads shown in the CLI. -**What models do you use?** MiniMax M2.5 as the main coding agent, Gemini 3.1 Flash Lite for finding files and research, and GPT-5.4 for deep thinking if you connect your ChatGPT subscription. +**What models do you use?** MiniMax M2.7 as the main coding agent, Gemini 3.1 Flash Lite for finding files and research, and GPT-5.4 for deep thinking if you connect your ChatGPT subscription. **Are you training on my data?** No. We only use model providers that do not train on our requests. Your code stays yours. diff --git a/freebuff/SPEC.md b/freebuff/SPEC.md index 1f896350d..2dc667f63 100644 --- a/freebuff/SPEC.md +++ b/freebuff/SPEC.md @@ -84,7 +84,7 @@ Freebuff only supports **FREE mode**. All mode-related features are stripped. | `/agent:gpt-5` | Premium agent, not available in free tier | | `/review` | Uses thinker-gpt under the hood | | `/publish` | Agent publishing not available in free tier | -| `/image` (+ `/img`, `/attach`) | Image attachments unavailable with free model (MiniMax M2.5) | +| `/image` (+ `/img`, `/attach`) | Image attachments unavailable with free model (MiniMax M2.7) | ### Commands to KEEP diff --git a/freebuff/web/src/app/home-client.tsx b/freebuff/web/src/app/home-client.tsx index e3a640b86..36caed22a 100644 --- a/freebuff/web/src/app/home-client.tsx +++ b/freebuff/web/src/app/home-client.tsx @@ -29,7 +29,7 @@ const faqs = [ { question: 'What models do you use?', answer: - 'MiniMax M2.5 as the main coding agent. Gemini 3.1 Flash Lite for finding files and research.\n\nConnect your ChatGPT subscription to unlock GPT-5.4 for deep thinking.', + 'MiniMax M2.7 as the main coding agent. Gemini 3.1 Flash Lite for finding files and research.\n\nConnect your ChatGPT subscription to unlock GPT-5.4 for deep thinking.', }, { question: 'Which countries is Freebuff available in?', diff --git a/web/src/content/advanced/how-does-it-work.mdx b/web/src/content/advanced/how-does-it-work.mdx index accdc2c3d..1518599be 100644 --- a/web/src/content/advanced/how-does-it-work.mdx +++ b/web/src/content/advanced/how-does-it-work.mdx @@ -25,7 +25,7 @@ The main agent ("Buffy") runs on Claude Opus 4.6. It reads your prompt, gathers - [**Researcher**](/publishers/codebuff/agents/researcher) (Grok 4 Fast) - web and docs lookup - [**Thinker**](/publishers/codebuff/agents/thinker) (GPT-5.1, Gemini 2.5 Pro) - works through hard problems - [**Editor**](/publishers/codebuff/agents/editor) (GPT-5.1, Claude Opus 4.6) - writes and modifies code -- [**Reviewer**](/publishers/codebuff/agents/reviewer) (Claude Opus 4.6, MiniMax M2.5 in Free mode) - catches bugs and style issues +- [**Reviewer**](/publishers/codebuff/agents/reviewer) (Claude Opus 4.6, MiniMax M2.7 in Free mode) - catches bugs and style issues - [**Basher**](/publishers/codebuff/agents/basher) (Gemini 3.1 Flash Lite) - runs terminal commands ## Best-of-N Selection (Max Mode) diff --git a/web/src/content/advanced/what-models.mdx b/web/src/content/advanced/what-models.mdx index 4a157737f..5001220b7 100644 --- a/web/src/content/advanced/what-models.mdx +++ b/web/src/content/advanced/what-models.mdx @@ -19,7 +19,7 @@ The main agent ("Buffy") coordinates everything: | Default | Opus 4.6 | | Plan | Opus 4.6 | | Max | Opus 4.6 | - | Free | MiniMax M2.5 | + | Free | MiniMax M2.7 | ## Subagents @@ -29,7 +29,7 @@ The orchestrator spawns these for specific jobs: | Task | Models | |------|--------| - | Code editing | Claude Opus 4.6, Minimax M2.5 | + | Code editing | Claude Opus 4.6, MiniMax M2.7 | | Thinking/reasoning | Claude Opus 4.6, GPT-5.4 | | Code review | Claude Opus 4.6, GPT-5.4 | | File discovery | Gemini 3.1 Flash Lite, Gemini 2.5 Flash Lite | @@ -37,4 +37,4 @@ The orchestrator spawns these for specific jobs: | Web/docs research | Gemini 3.1 Flash Lite | -Max mode runs multiple implementations in parallel and picks the best one. Default mode runs a single implementation pass. Free mode uses MiniMax M2.5 and includes code review support. +Max mode runs multiple implementations in parallel and picks the best one. Default mode runs a single implementation pass. Free mode uses MiniMax M2.7 and includes code review support. diff --git a/web/src/content/help/faq.mdx b/web/src/content/help/faq.mdx index e22af6977..911045526 100644 --- a/web/src/content/help/faq.mdx +++ b/web/src/content/help/faq.mdx @@ -13,7 +13,7 @@ Software development: Writing features, tests, and scripts across common languag ## What model does Codebuff use? -Multiple. The orchestrator uses Claude Opus 4.6 in Default and Max modes, or MiniMax M2.5 in Free mode. Subagents are matched to their tasks: Claude Opus 4.6 for code editing, GPT-5.1 for deep reasoning, Grok 4.1 Fast for terminal commands and research, and Relace AI for fast file rewrites. Free mode includes code review support. See [What models do you use?](/docs/advanced/what-models) for the full breakdown. +Multiple. The orchestrator uses Claude Opus 4.6 in Default and Max modes, or MiniMax M2.7 in Free mode. Subagents are matched to their tasks: Claude Opus 4.6 for code editing, GPT-5.1 for deep reasoning, Grok 4.1 Fast for terminal commands and research, and Relace AI for fast file rewrites. Free mode includes code review support. See [What models do you use?](/docs/advanced/what-models) for the full breakdown. ## Can I use my Claude Pro or Max subscription with Codebuff? diff --git a/web/src/content/tips/modes.mdx b/web/src/content/tips/modes.mdx index e88915591..790b93d06 100644 --- a/web/src/content/tips/modes.mdx +++ b/web/src/content/tips/modes.mdx @@ -15,7 +15,7 @@ Codebuff has four modes. Switch during a session with `Shift+Tab` or `/mode:` co | Default | Claude Opus 4.6 | editor | Yes | | Max | Claude Opus 4.6 | editor-multi-prompt | Yes | | Plan | Claude Opus 4.6 | None | No | - | Free | MiniMax M2.5 | editor-lite | No | + | Free | MiniMax M2.7 | editor-lite | No | ## Default @@ -60,7 +60,7 @@ Switch to this mode with `/mode:plan`. ## Free -MiniMax M2.5, cheaper and faster: +MiniMax M2.7, cheaper and faster: - Less file context gathering - Skips code review