Source Intelligence

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

All of v2.1.238 Home All releases olderv2.1.237 v2.1.239newer
Claude Code v2.1.238

Cross-session messages: a "refused" receipt and a guard drop on release

You'll notice
Useful2 Signal3
Cross-Session Messaging

Cross-session messages refused after approval now return a "refused" receipt instead of "expired".

What

Messages held for approval between sessions gained two new outcomes. If policy refuses a message after it is approved, the sender gets a refused receipt instead of "expired" or "denied", and a released message is re-checked against the receiving session's inbox guard, which can now drop it.

Details
  • The recipient sees a warning when the inbox guard had no room for a released message.
  • The sending session's Claude gets delivery notices for the refused and dropped cases, telling it not to resend.
  • On the wire, refused is sent as status: "expired" with status_detail: "refused"; drops add drop_reason and dropped_msg_ids.
  • Part of the existing cross-session peer feature, which the code still describes as having a kill switch and a per-session opt-out.
Evidence

The recipient session is not accepting cross-session messages (the feature is off there, or a setting or policy there refuses them); your message was not delivered to its Claude.

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

See this entry in the whole of v2.1.238 →