Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

[Feature]: CLI - ACP: queue session/prompt while a turn is running instead of rejecting it with -32603

Đang mở
#567 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
54/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
typescript
Lĩnh vực
api, cli

Hướng nghiên cứu

Start by tracing the mcode acp handler for session/prompt and the existing TUI and ACP queue paths; inspect the queue extension methods and their tests. Reproduce a prompt arriving during an active turn, then verify the selected behavior: the message is delivered once after the turn and its response tracks that queued turn, or the error names the callable queue method. Check that queued messages remain visible through mcode/session/queue/list and removable with mcode/session/queue/delete.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Product or interface

CLI - ACP

Use case and problem

A third-party ACP client that talks to mcode acp cannot steer a running turn. When it sends session/prompt while a turn is still active, the ACP adapter rejects it:

Internal error: MiniMax Code Runtime failed: Session already has an active Turn. Use queue send to deliver the message after it.

This happens in practice whenever a background message has to reach a session that is busy — for example a parent agent that is notified that its subagent finished while the parent's own turn is still running. The message is not queued and not delivered: it fails.

The agent already has the machinery for this. The TUI queues messages typed during a run, and the ACP adapter exposes the same capability as a vendor extension:

"_meta": { "minimax-code/extensions": { "methods": [
  "mcode/session/steer",
  "mcode/session/queue/list", "mcode/session/queue/enqueue",
  "mcode/session/queue/update", "mcode/session/queue/delete", "mcode/session/queue/steer"
] } }

But the error message only says "Use queue send" without naming the method, and the ACP protocol has no standard way to advertise steering or queueing — the promptCapabilities object in the ACP schema only carries image, audio and embeddedContext, so initialize cannot tell a generic client that steering exists. A generic client therefore has to read the vendor _meta block and guess the method name, and most clients do not.

Desired behavior

Either of these would make mcode acp usable from generic ACP clients:

  1. session/prompt received while a turn is running is queued and delivered once the running turn finishes, with the session/prompt response returned when the queued turn actually runs — the same behaviour the TUI already has. This is the interoperable option, since a client that cannot know about a vendor extension cannot use it.
  2. The error names the exact method to call, e.g. Session already has an active Turn. Call mcode/session/queue/enqueue to deliver the message after it. — at minimum, the error should carry the method name so a client can recover without reading the source.

Acceptance criteria:

  • A session/prompt that arrives during a running turn is either queued or rejected with an error that names the callable extension method. It is never silently dropped.
  • With option 1, the message is delivered exactly once, after the running turn, and the session/prompt response corresponds to the queued turn.
  • Queued messages are visible through mcode/session/queue/list and can be removed with mcode/session/queue/delete, consistent with the existing extension contract.
Platform

Multiple platforms

Alternatives and additional context
  • Steering via mcode/session/steer works for clients that read the vendor extension, but the ACP schema itself has no capability to advertise it, so clients have to hard-code provider-specific knowledge.
  • The client side of this problem is tracked in the Paseo repository: https://github.com/getpaseo/paseo/issues/8300 and https://github.com/getpaseo/paseo/discussions/8301 — they are looking at queuing messages on the client side, but a client-side queue cannot be applied when the client is not the one that owns the turn.
  • Related open issues in this repository: #295 (parallel queued tasks in the interactive TUI), #335 (separating mid-run steer/queue messages in Goal mode). This request is about the ACP surface specifically, not the TUI.
Ngôn ngữ chính
TypeScript
Star
2.1k
Fork
271
Merge trung bình
15 giờ 10 phút
Pull request đã merge (30 ngày)
34

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của MiniMax-AI/minimax-code

Tất cả issue của MiniMax-AI/minimax-code

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.