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.225 Home All releases olderv2.1.224 v2.1.226newer

Headless sessions expire held peer messages instead of holding forever

You'll notice
Useful3 Signal0
Cross-Session Messaging

Headless runs no longer hang forever on a peer message that needs an approval nobody can give.

What

In non-interactive mode a held peer message whose hold cause is a mode mismatch now gets a deadline, so a headless run no longer blocks indefinitely waiting for an approval that can never arrive.

Details
  • The expiry uses an unref'd timer, so it does not keep the process alive on its own.
  • On expiry the message is dropped and a cancelled receipt is issued to the sender.
  • The drop is logged with the reason that no approval surface exists.
Evidence

[cross-session-inbound] headless: held peer message expired (no approval surface) — dropped with an expired receipt

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.225 →