feat: add MCode as a built-in ACP agent - #503
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. |
|
Codex review: found issues before merge. Reviewed August 28, 2026, 11:47 PM ET / August 29, 2026, 03:47 UTC. ClawSweeper reviewWhat this changesThis PR registers Merge readinessKeep open: the mapping and real-agent proof are credible, but an owner must explicitly approve reserving Priority: P3 Review scores
Verification
How this fits togetherACPX resolves a friendly agent name into a command and launches that command as an ACP stdio server. The resulting protocol stream is handled by ACPX’s common client, permission policy, and session lifecycle. flowchart LR
User[Agent or automation] --> CLI[ACPX command line]
CLI --> Registry[Built-in agent registry]
Registry --> Launch[Launch mcode acp]
Launch --> Server[MiniMax Code ACP server]
Server --> Client[ACPX ACP client]
Client --> Output[Messages and results]
Decision needed
Why: The implementation is narrow, but the repository treats keywords and naming conventions as long-term compatibility surface. Before merge
Findings
Agent review detailsSecurityNone. Review metrics
Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Make an explicit registry-policy decision: merge the focused native mapping only if MCode merits permanent built-in support; otherwise retain configuration-defined agent support. Do we have a high-confidence way to reproduce the issue? Not applicable: this PR adds a built-in shortcut rather than repairing a reported failure. The supplied terminal trace does exercise the native MCode command through ACPX. Is this the best way to solve the issue? Unclear pending product direction: the direct mapping is narrow if the keyword is accepted, but configuration-defined agents already cover the underlying launch capability. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against ef6b81e71756. LabelsLabel justifications:
EvidenceWhat I checked:
Likely related people:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (7 earlier review cycles)
|
|
Addressed the actionable review items in
The remaining question—whether @clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
Addressed the remaining author-side documentation finding in
The real-agent proof remains in the PR body. The only remaining question is maintainer approval of @clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
@steipete Would you mind taking a look and making the product call on this one? I’d like to get MCode included as a built-in ACP agent. While acpx mcode exec 'summarize this repository'The implementation is intentionally narrow: it only registers the native ClawSweeper’s remaining concern is the long-term keyword/support contract rather than an implementation defect. I’m in favor of accepting that contract and merging the PR, but I’d appreciate your decision as the maintainer familiar with this registry boundary. If you’re open to the built-in, I’m happy to address any final changes you’d like. |
Closes #502
What Problem This Solves
MiniMax Code already exposes a native ACP v1 server through
mcode acp, but acpx users currently have to configure that command manually. This makes MCode unavailable through the same built-in agent workflow as Codex, Claude, Gemini, and the other supported ACP agents.Why This Change Was Made
Add
mcodeto both built-in command registries as structured argv (["mcode", "acp"]), with registry and cross-platform CLI integration coverage. The agent guide documents installation, authentication, permission handling, and the currentsession/loadlimitation without adding an adapter or sidecar.User Impact
After installing and authenticating MiniMax Code, users can run:
MCode remains responsible for its own runtime, login state, model configuration, and tools; acpx only owns the ACP client lifecycle and permission policy.
Evidence
pnpm run check— 918 tests passed; coverage thresholds passed (94.73% lines, 87.94% branches)pnpm run check:docs— formatting, markdown lint, and docs site build passedmcode acpresolution on Unix and Windows.cmdlaunch paths@minimax-ai/code0.1.2 returnedACPX_MCODE_OKthroughacpx mcode exec; the redacted transcript is belowloadSession: false, streamed a terminal tool-call lifecycle, and returned the expected result; the redacted protocol excerpt is belowRedacted real-agent transcript
This was rerun from the PR checkout against the installed, authenticated
@minimax-ai/code0.1.2 binary. The working-directory path and per-session/message/toolidentifiers are omitted; no protocol result fields were changed.
The second run used
--format json --json-strict --approve-all, asked MCode to executeprintf ACPX_TOOL_OK, and filtered the transcript to the initialize response, toollifecycle, final agent message, and prompt result:
{"jsonrpc":"2.0","id":0,"result":{"protocolVersion":1,"agentCapabilities":{"loadSession":false,"mcpCapabilities":{"http":true,"sse":true},"promptCapabilities":{"image":false,"audio":false,"embeddedContext":false}},"agentInfo":{"name":"minimax-code","title":"MiniMax Code","version":"0.1.2"}}} {"jsonrpc":"2.0","method":"session/update","params":{"update":{"sessionUpdate":"tool_call","toolCallId":"<redacted>","title":"bash","name":"bash","kind":"execute","status":"in_progress","rawInput":{"command":"printf ACPX_TOOL_OK"}}}} {"jsonrpc":"2.0","method":"session/update","params":{"update":{"sessionUpdate":"tool_call_update","toolCallId":"<redacted>","status":"completed","rawInput":{"command":"printf ACPX_TOOL_OK"},"rawOutput":{"content":[{"type":"text","text":"ACPX_TOOL_OK"}]}}}} {"jsonrpc":"2.0","method":"session/update","params":{"update":{"sessionUpdate":"agent_message_chunk","messageId":"<redacted>","content":{"type":"text","text":"ACPX_TOOL_OK"}}}} {"jsonrpc":"2.0","id":2,"result":{"stopReason":"end_turn"}}Scope Notes
execusage and explicitly state that sequential CLI invocations start fresh MCode context.AI assistance was used to investigate the integration path, implement the change, run validation, and draft this PR. All generated changes and evidence were reviewed before submission.