anthropics / anthropics/claude-code
Desktop app: send_message to a busy session waits for the turn to end, while typed messages are picked up mid-turn
- Dominant language
- Python
- Stars
- 145k
- Forks
- 23.1k
- PR merge metrics
- PR metrics pending
Description
### Summary
When a session is busy, a message typed by the user is injected at the next tool call, partway through the turn. A message sent with the `ccd_session_mgmt` `send_message` tool returns `delivery: queued` and waits until the whole turn ends. This matches the tool's own description ("runs when that finishes"), so this is a feature request, not a bug report.
### Reproduction (Claude desktop app, Windows, 2026-09-17)
1. Session B runs 12 separate ~10-second tool calls and logs which messages it sees after each call.
2. During step 1, session A calls `send_message` to B → returns `delivery: queued`.
3. A few seconds **later**, the user types a message into B.
| Message | Sent | Seen by B |
|---|---|---|
| `send_message` from A | first | only after all 12 steps, as a new turn (~2.5 min later) |
| typed by user | second | after step 1, mid-turn |
### Why it matters
One session sending another a correction ("stop, the brief is wrong") is the main reason to message a busy session. As things stand, the correction arrives only after the target session has finished acting on the wrong brief. A typed message would have stopped it at the next tool call.
### Request
Pick up `send_message` messages at the next tool call, the same way typed messages are, or add an option for it (e.g. `interrupt: "next_tool_call" | "end_of_turn"`).
### Minor note
While the message was waiting, `list_events` on B showed it as the **first** entry in the transcript, above the prompt that started the session. After the turn ended it showed in the correct place. Anything that reads the transcript during that window could conclude the message was already delivered.
Related (delivery reliability): anthropics/claude-code#86279
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by tracing the ccd_session_mgmt send_message delivery path and comparing it with how typed messages are picked up at the next tool call. Use the listed reproduction and list_events behavior to verify the change; done means busy-session tool messages are delivered at the next tool call, or the requested delivery option is supported with correct transcript ordering.
Written by the indexing model from the issue text.
Assessment
- Domain
- cli, developer-experience
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100