Skip to content

feat(llm_minimax): add MiniMax M3 model profile#1046

Merged
dsapandora merged 3 commits into
rocketride-org:developfrom
mithileshgau:feat/RR-1045-add-minimax-m3-model
Jun 2, 2026
Merged

feat(llm_minimax): add MiniMax M3 model profile#1046
dsapandora merged 3 commits into
rocketride-org:developfrom
mithileshgau:feat/RR-1045-add-minimax-m3-model

Conversation

@mithileshgau
Copy link
Copy Markdown
Collaborator

@mithileshgau mithileshgau commented Jun 1, 2026

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

  • `nodes/src/nodes/llm_minimax/services.json` — M3 profile + field def + conditional entry; M2.x outputs upgraded 8192 → 65536 per docs-recommended; sync now sources the values from `sync_models.config.json` (visible as inline annotation comments).
  • `tools/src/sync_models.config.json` — `token_limit_overrides` and `model_output_tokens.overrides` blocks populated for all 8 MiniMax cloud models, anchored to the official API reference. `protected_profiles` extended to include `minimax-m3`.
  • `nodes/src/nodes/llm_minimax/README.md` — M3 row + summary in the Cloud profile table.

Test plan

  • `python3 tools/src/sync_models.py --provider llm_minimax --enable-discovery` (dry-run) shows `(no changes — 20 profiles unchanged)` — the sync sees services.json as fully aligned with the overrides
  • Live-test M3 in canvas using `ROCKETRIDE_MINIMAX_KEY` (verified locally on engine sync)
  • CI sync cron's next run produces no spurious diff against this branch

Summary by CodeRabbit

  • New Features

    • Added MiniMax M3 profile with 1M-token context; multimodal model noted and text path exposed; recommended output guidance up to 512K (typical ~128K).
  • Documentation

    • Cloud catalogue and profile documentation updated to include MiniMax M3 and refreshed descriptions.
  • Chores

    • Expanded provider profiles, editable MiniMax settings, and explicit per-model context & output token-limit overrides.

@github-actions github-actions Bot added docs Documentation module:nodes Python pipeline nodes labels Jun 1, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Jun 1, 2026

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: db4c6b25-b8b4-4288-b982-765be4db9b81

📥 Commits

Reviewing files that changed from the base of the PR and between 90581fd and 6f67be7.

📒 Files selected for processing (1)
  • tools/src/sync_models.config.json

📝 Walkthrough

Walkthrough

Adds 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.

Changes

MiniMax M3 Support

Layer / File(s) Summary
M3 Token Limit Configuration
tools/src/sync_models.config.json
Adds minimax-m3 to protected_profiles, activates token_limit_overrides for MiniMax model IDs, and sets model_output_tokens.overrides with a higher limit for MiniMax-M3 and shared lower limits for other MiniMax variants.
M3 Profile Configuration and Schema
nodes/src/nodes/llm_minimax/services.json
Updated cloud preconfig.profiles to modelSource: "provider" for cloud MiniMax models, added/updated minimax-m3 provider profile with model name and token limits, kept local *-local profiles as manual, and expanded fields schema to include editable minimax.custom properties and a minimax.minimax-m3 object.
M3 Documentation
nodes/src/nodes/llm_minimax/README.md
Added MiniMax M3 row to Cloud profiles table (1M-token context) and expanded cloud catalogue text with M3 multimodal/coding notes, recommended output limits, and a clarification that the node exposes only the text path.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related issues

Possibly related PRs

Suggested reviewers

  • jmaionchi
  • stepmikhaylov
  • Rod-Christensen
  • asclearuc

Poem

🐰 I hop through configs, lines in tow,
M3 arrives with a million-glow,
Tokens set and profiles new,
Docs whisper what the node can do,
I nibble bytes and cheer—huzzah!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely summarizes the primary change: adding the MiniMax M3 model profile to the llm_minimax node, which aligns with the main objectives across all three modified files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 1, 2026

No description provided.

dsapandora
dsapandora previously approved these changes Jun 1, 2026
@dsapandora dsapandora force-pushed the feat/RR-1045-add-minimax-m3-model branch from f7f4e64 to 9a0b78f Compare June 1, 2026 21:06
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
@dsapandora dsapandora force-pushed the feat/RR-1045-add-minimax-m3-model branch from 9a0b78f to 90581fd Compare June 1, 2026 21:12
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 win

Add protection for MiniMax *-local profiles to avoid Pass-2 deprecation of modelSource: manual entries

tools/src/core/merger.py Pass 2 can deprecate profiles that are missing from the current API response unless they’re included in protected_profile_keys and _source_is_authoritative(deprecation_source, model_source) allows it. For deprecation_source == "provider API", _source_is_authoritative treats modelSource of "manual" (default when unset) as authoritative—so the unprotected MiniMax local profiles (minimax-m2-local, minimax-m2-5-local, minimax-m2-7-local in services.json) are at risk on no-key/fallback sync runs. Add them to protected_profiles or explicitly set a non-deprecating modelSource.
-->

🤖 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

📥 Commits

Reviewing files that changed from the base of the PR and between 9a0b78f and 90581fd.

📒 Files selected for processing (3)
  • nodes/src/nodes/llm_minimax/README.md
  • nodes/src/nodes/llm_minimax/services.json
  • tools/src/sync_models.config.json

mithileshgau and others added 2 commits June 1, 2026 23:31
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>
@dsapandora dsapandora merged commit b36137e into rocketride-org:develop Jun 2, 2026
24 checks passed
@mithileshgau mithileshgau deleted the feat/RR-1045-add-minimax-m3-model branch June 2, 2026 18:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Documentation module:nodes Python pipeline nodes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants