A new peer_message_hold event reports when a message from another session is parked instead of delivered, and how it's later resolved
Claude Code sessions can receive messages from your other sessions (cross-session messaging). A new peer_message_hold system event now reports when an incoming message from another session is parked rather than queued for delivery, for example because the permission mode doesn't match or because the crossSessionInbound setting is set to hold. This event is emitted on the standard output stream in non-interactive (-p) and SDK-driven sessions.
The event also reports what happens next: whether the held message is later released, or instead dropped, expired, refused, or discarded, along with details like which channel it arrived on and why it was held.
This gives tools and integrations built on Claude Code visibility into cross-session messages that would otherwise silently disappear, so a host application can show the user what happened to a message from another session instead of it just vanishing.
The entry above is what we published on the day. These lines were added later, as Anthropic's own pages caught up, and they sit beside the original rather than replacing it.
| `crossSessionInbound` | Treated as `refuse`, the most restrictive value, so inbound [cross-session messages](/docs/en/cross-session-messaging#control-inbound-messages) are refused until the value is fixed. The developer sees [a warning](…managed-settings see the edit
Anthropic's documentation has since written up crossSessionInbound, on Deploy managed settings.