Headless runs no longer hang forever on a peer message that needs an approval nobody can give.
What's wrong with this entry?
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.
- 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.
[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.
-
v2.1.234
Messages injected by a host are classified separately from peer messages
Both mention cross
-
v2.1.234
Cross-session control requests check ids more carefully
Both mention cross
-
v2.1.234
Notice acks now wait for the record to persist
Both mention cross