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

Open
#95,086 0 comments 0 reactions 0 assignees View on GitHub
area:cowork area:desktop enhancement platform:windows
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.