feat(llm_minimax): add MiniMax M3 model profile#1046
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughAdds MiniMax M3 support: documents the model in the llm_minimax README, adds/updates minimax-m3 and provider-based profiles plus expanded fields schema in services.json, and enables MiniMax token/context and output-token overrides in sync_models.config.json. ChangesMiniMax M3 Support
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related issues
Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
No description provided. |
f7f4e64 to
9a0b78f
Compare
Add the `MiniMax-M3` cloud profile to the llm_minimax node - MiniMax's frontier multimodal coding model with a 1M-token context window and 128K recommended output. Surfaces automatically in the canvas profile selector via the existing dynamic field/conditional plumbing. Discovered and written by `tools/src/sync_models.py` against the live `https://api.minimax.io/v1/models` endpoint. Two override blocks in `tools/src/sync_models.config.json` lock the docs-correct values so discovery noise (OpenRouter/LiteLLM disagree with MiniMax's own docs) doesn't silently shift them: - `token_limit_overrides`: 1M for M3, 200K for every M2.x model - `model_output_tokens.overrides`: 128K for M3, 64K for M2.x (per MiniMax's `text-chat-openai` API reference) The 64K M2.x output upgrade (was 8192) is a real behavior change. Profile `modelSource` flips manual->provider for the M2.x family - sync has now confirmed those IDs via the native API. Closes rocketride-org#1045
9a0b78f to
90581fd
Compare
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
tools/src/sync_models.config.json (1)
417-427:⚠️ Potential issue | 🟠 Major | ⚡ Quick winAdd protection for MiniMax
*-localprofiles to avoid Pass-2 deprecation ofmodelSource: manualentries
tools/src/core/merger.pyPass 2 can deprecate profiles that are missing from the current API response unless they’re included inprotected_profile_keysand_source_is_authoritative(deprecation_source, model_source)allows it. Fordeprecation_source == "provider API",_source_is_authoritativetreatsmodelSourceof"manual"(default when unset) as authoritative—so the unprotected MiniMax local profiles (minimax-m2-local,minimax-m2-5-local,minimax-m2-7-localinservices.json) are at risk on no-key/fallback sync runs. Add them toprotected_profilesor explicitly set a non-deprecatingmodelSource.
-->🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@tools/src/sync_models.config.json` around lines 417 - 427, Add the missing MiniMax local profiles to the protected_profiles list so they aren't pass-2 deprecated when modelSource defaults to "manual": append entries for "minimax-m2-local", "minimax-m2-5-local", and "minimax-m2-7-local" to the protected_profiles array (or alternatively ensure those profiles in the source have an explicit non-manual modelSource), referencing the protected_profiles key in the config and the MiniMax profile names to prevent deprecation during merger.py's Pass 2 logic.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Outside diff comments:
In `@tools/src/sync_models.config.json`:
- Around line 417-427: Add the missing MiniMax local profiles to the
protected_profiles list so they aren't pass-2 deprecated when modelSource
defaults to "manual": append entries for "minimax-m2-local",
"minimax-m2-5-local", and "minimax-m2-7-local" to the protected_profiles array
(or alternatively ensure those profiles in the source have an explicit
non-manual modelSource), referencing the protected_profiles key in the config
and the MiniMax profile names to prevent deprecation during merger.py's Pass 2
logic.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 96510449-3f6d-4dd7-8b34-5c1b19684de3
📒 Files selected for processing (3)
nodes/src/nodes/llm_minimax/README.mdnodes/src/nodes/llm_minimax/services.jsontools/src/sync_models.config.json
Add the three MiniMax local-deploy profiles (minimax-m2-local, minimax-m2-5-local, minimax-m2-7-local) to protected_profiles. Their `model` fields are HuggingFace paths (MiniMaxAI/MiniMax-M2.X) that the MiniMax /v1/models endpoint never returns, so merger.py's pass-2 deprecation check would mark them deprecated as soon as _source_is_authoritative starts matching `<provider> API` against the 'manual' modelSource - the local profiles survive today only via an unrelated string-mismatch quirk in that authority check. Defense in depth - explicitly protect rather than rely on the quirk. Addresses CodeRabbit review feedback on PR rocketride-org#1046. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Summary
Adds the `MiniMax-M3` cloud profile to the `llm_minimax` node — MiniMax's frontier multimodal coding model (1M context, 128K recommended output). Includes `sync_models.config.json` override blocks so the next weekly cron's auto-PR doesn't silently downgrade M2.x or fall back to the 16K hardcoded estimate for M3.
What changed
Test plan
Summary by CodeRabbit
New Features
Documentation
Chores