Skip to content

feat(ai): accept MiniMax-M3 as a supported vision model#191

Open
Tugser wants to merge 1 commit into
openclaw:mainfrom
Tugser:feat/minimax-m3-support
Open

feat(ai): accept MiniMax-M3 as a supported vision model#191
Tugser wants to merge 1 commit into
openclaw:mainfrom
Tugser:feat/minimax-m3-support

Conversation

@Tugser

@Tugser Tugser commented Jun 16, 2026

Copy link
Copy Markdown

Summary

Enables MiniMax-M3 as a first-class, vision-capable model so it can drive Peekaboo's screenshot/image analysis (peekaboo see --analyze, MCP see, etc.).

Today the whole MiniMax family is marked supportsVision = false in Tachikoma, so configuring minimax/MiniMax-M3 fails with No configured vision-capable AI model is available. With this change (plus the Tachikoma side), M3 works end-to-end for vision.

Changes

  • Apps/CLI/Sources/PeekabooCLI/Commands/AI/AgentCommand+ModelParsing.swift: add .m3 to supportedMiniMaxInputs.
  • Apps/CLI/Tests/CoreCLITests/AgentCommandModelParsingTests.swift: M3 parse assertions + parametrized case.
  • Core/PeekabooCore/Tests/PeekabooTests/AIProviderParserTests.swift: minimax/MiniMax-M3 config assertion.
  • Tachikoma submodule bump for the enum + per-case supportsVision + parser entries (depends on feat(models): add MiniMax-M3 with vision support Tachikoma#26).

Dependency note

This PR bumps the Tachikoma submodule to Tugser/Tachikoma@13d0454 (the fork commit carrying the M3 enum/parser change) so the Peekaboo side compiles and tests pass. It should be re-pointed to the openclaw/Tachikoma main commit once openclaw/Tachikoma#26 merges. Until then, fresh git submodule update against the upstream submodule URL may not resolve the SHA.

Test commands executed

swift test --package-path Apps/CLI --filter "AgentCommandModelParsingTests"
swift test --package-path Core/PeekabooCore --filter "AIProviderParserTests"
# Tachikoma (submodule):
swift test --filter "ModelParsingTests|LanguageModelCoverageTests"

All pass. Also verified end-to-end locally: peekaboo see --mode frontmost --analyze "..." returns a real analysis via provider=minimax, model=MiniMax-M3.

Builds

  • swift build --package-path Apps/CLI (debug) ✅
  • ./scripts/build-swift-arm.sh (arm64 release, code-signed) ✅

Add MiniMax-M3 to the CLI's supported MiniMax inputs so `minimax/MiniMax-M3`
(and aliases) resolves to a vision-capable model for screenshot analysis.

- AgentCommand+ModelParsing: include `.m3` in supportedMiniMaxInputs
- Tests: M3 parse cases in AgentCommandModelParsingTests and
  AIProviderParserTests
- Bump Tachikoma submodule for the matching MiniMax-M3 enum + vision +
  parser change (see openclaw/Tachikoma#26)
@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. P2 Normal priority bug or improvement with limited blast radius. merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. merge-risk: 🚨 security-boundary 🚨 Merging this PR could weaken sandboxing, authorization, credentials, or sensitive data. labels Jun 17, 2026
@clawsweeper

clawsweeper Bot commented Jun 17, 2026

Copy link
Copy Markdown

Codex review: needs real behavior proof before merge. Reviewed June 20, 2026, 4:03 AM ET / 08:03 UTC.

Summary
The PR adds MiniMax-M3 to Peekaboo's MiniMax model parsing/tests and bumps the Tachikoma submodule to the fork commit carrying the matching model enum and vision-support change.

Reproducibility: yes. from source inspection: current main gates MiniMax parsing through supportedMiniMaxInputs, which only contains M2.7 and M2.7 Highspeed. I did not run Swift tests because this review must keep the checkout read-only and artifact-free.

Review metrics: 3 noteworthy metrics.

  • Changed files: 4 files affected. The source diff is small, but one file is a submodule gitlink that controls dependency provenance.
  • Dependency state: 1 open upstream PR. Peekaboo would depend on Tachikoma work that is not yet merged upstream.
  • MiniMax China coverage: 2 positive assertions removed. The PR drops coverage for still-supported minimax-cn and minimaxi parsing aliases.

Merge readiness
Overall: 🧂 unranked krab
Proof: 🧂 unranked krab
Patch quality: 🧂 unranked krab
Result: blocked until real behavior proof is added.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • Re-point Tachikoma to the accepted upstream main commit after MiniMax-M3 support lands in Tachikoma.
  • Restore the MiniMax China parser assertions while keeping the new MiniMax-M3 cases.
  • [P1] Add redacted terminal output, logs, screenshot, recording, or linked artifact showing a real MiniMax-M3 peekaboo see --analyze run.

Proof guidance:

  • [P1] Needs real behavior proof before merge: The PR body reports tests and a local end-to-end MiniMax-M3 run, but no inspectable terminal output, logs, screenshot, recording, or linked artifact is attached; the contributor should add redacted proof and update the PR body so ClawSweeper can re-review, or ask a maintainer to comment @clawsweeper re-review.

Risk before merge

  • [P1] Merging now would pin Peekaboo to Tachikoma code from an open fork PR while the configured upstream Tachikoma main ref remains on the old commit.
  • [P1] The related Tachikoma work at feat(models): add MiniMax-M3 with vision support Tachikoma#26 still has parser-completeness and real-proof blockers, so this downstream bump would adopt incomplete provider-model support.
  • [P1] The PR body reports local tests and an end-to-end run, but it does not include inspectable terminal output, logs, screenshots, recordings, or linked artifacts showing MiniMax-M3 analysis after the fix.
  • [P1] The branch removes existing positive coverage for MiniMax China aliases while the implementation still supports those aliases.

Maintainer options:

  1. Wait for upstream Tachikoma and refresh (recommended)
    Merge or repair the Tachikoma MiniMax-M3 work first, then repoint this PR to the accepted upstream main commit, restore the removed parser assertions, and add redacted real-run proof.
  2. Pause dependency adoption
    Hold or close this downstream PR until maintainers decide the Tachikoma-side parser/API direction and dependency provenance are ready for Peekaboo.

Next step before merge

  • [P1] Maintainers need to resolve the upstream Tachikoma dependency timing and contributor proof before this branch is a safe landing candidate.

Security
Needs attention: The PR changes an AI-provider dependency gitlink to unmerged fork code, which needs maintainer attention before merge.

Review findings

  • [P1] Point Tachikoma at an accepted upstream commit — Tachikoma:1
  • [P3] Keep MiniMax China parser coverage — Apps/CLI/Tests/CoreCLITests/AgentCommandModelParsingTests.swift:90-92
Review details

Best possible solution:

Land complete MiniMax-M3 support in Tachikoma first, update this PR's gitlink to the accepted upstream main commit, restore MiniMax China parser coverage, and include redacted terminal or log proof from a real MiniMax-M3 analysis run.

Do we have a high-confidence way to reproduce the issue?

Yes, from source inspection: current main gates MiniMax parsing through supportedMiniMaxInputs, which only contains M2.7 and M2.7 Highspeed. I did not run Swift tests because this review must keep the checkout read-only and artifact-free.

Is this the best way to solve the issue?

No as submitted. The Peekaboo parser change is narrow, but the maintainable path is to land complete Tachikoma support upstream first, use an accepted submodule commit, preserve existing MiniMax China coverage, and add inspectable real behavior proof.

Full review comments:

  • [P1] Point Tachikoma at an accepted upstream commit — Tachikoma:1
    This gitlink moves Tachikoma to the head of still-open dependency work rather than an accepted upstream main commit. Repository policy says submodules should be updated in their home repos first and then bumped here; merging this as-is would make Peekaboo depend on unaccepted provider code and may not reproduce from the configured submodule upstream.
    Confidence: 0.92
  • [P3] Keep MiniMax China parser coverage — Apps/CLI/Tests/CoreCLITests/AgentCommandModelParsingTests.swift:90-92
    These changes replace the only positive assertions in this test for the minimax-cn and minimaxi aliases, but the parser still supports those aliases. Add the MiniMax-M3 expectations without removing the existing MiniMax China coverage so that path cannot regress silently.
    Confidence: 0.84

Overall correctness: patch is incorrect
Overall confidence: 0.9

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against 9b9c5de43bf0.

Label changes

Label justifications:

  • P2: Adding one provider model is a normal-priority improvement with limited blast radius, but it is blocked by dependency/proof readiness.
  • merge-risk: 🚨 compatibility: The PR changes a submodule pointer to an open fork commit, which can break reproducible submodule updates and upgrade expectations.
  • merge-risk: 🚨 security-boundary: The diff temporarily routes AI provider execution and credential-adjacent behavior through unaccepted dependency code.
  • rating: 🧂 unranked krab: Overall readiness is 🧂 unranked krab; proof is 🧂 unranked krab and patch quality is 🧂 unranked krab.
  • status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs real behavior proof before merge: The PR body reports tests and a local end-to-end MiniMax-M3 run, but no inspectable terminal output, logs, screenshot, recording, or linked artifact is attached; the contributor should add redacted proof and update the PR body so ClawSweeper can re-review, or ask a maintainer to comment @clawsweeper re-review.
Evidence reviewed

Security concerns:

  • [medium] Submodule points at unaccepted provider dependency code — Tachikoma:1
    The Tachikoma gitlink is moved to the open dependency PR head instead of an accepted upstream main commit; release builds should not consume unaccepted AI-provider dependency code as the permanent source for model parsing and credential-adjacent provider execution.
    Confidence: 0.9

What I checked:

Likely related people:

  • steipete: GitHub commit metadata and local history show steipete authored the MiniMax/local provider support, MiniMax China support, latest-provider refreshes, and multiple Tachikoma syncs touching the relevant parser and provider paths. (role: introduced behavior and recent area contributor; confidence: high; commits: 6218854746aa, 86f541184f0c, e75db3a7aa7e; files: Apps/CLI/Sources/PeekabooCLI/Commands/AI/AgentCommand+ModelParsing.swift, Core/PeekabooCore/Sources/PeekabooAutomation/Services/AI/PeekabooAIService.swift, Core/PeekabooCore/Sources/PeekabooAutomation/Utils/AIProviderParser.swift)
  • Crux0453: Recent OAuth/provider work touched the AI provider service and Tachikoma pointer, making this person useful context for provider authentication and dependency interactions even though they did not introduce MiniMax model parsing. (role: adjacent contributor; confidence: medium; commits: fe6548a5d899; files: Core/PeekabooCore/Sources/PeekabooAutomation/Services/AI/PeekabooAIService.swift, Tachikoma)
  • lonexreb: The original MiniMax/local provider commit credits lonexreb as a co-author, which is relevant background for MiniMax provider behavior. (role: original feature co-author; confidence: medium; commits: 6218854746aa; files: Apps/CLI/Sources/PeekabooCLI/Commands/AI/AgentCommand+ModelParsing.swift, Core/PeekabooCore/Sources/PeekabooAutomation/Services/AI/PeekabooAIService.swift)
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

How this review workflow works
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. merge-risk: 🚨 security-boundary 🚨 Merging this PR could weaken sandboxing, authorization, credentials, or sensitive data. P2 Normal priority bug or improvement with limited blast radius. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant