What
- The peer-messaging and
bridge:replinbound-message handlers now hold onto aqueueingobject returned alongside the message content. It's declared withusing(a pattern that runs cleanup automatically), and the handler calls.queued()once the message is actually enqueued; if the handler returns early without enqueueing, the cleanup logic fires instead. - The
session.receivehook dispatch path now always returns aqueueingfield too: a no-op placeholder when no hook is registered, or a real one tied to an arrival-tracking mechanism when a hook consumes or holds onto the message.
Why
This ensures that whenever a message is received, there's a reliable, explicit way to know whether it was actually queued or dropped, so cleanup happens correctly in both cases instead of relying on implicit behavior.
Names in the bundlesession.receive
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.
Confirmed since
Anthropic's documentation has since written up session.receive, on Use the mods API.
`session.receive` and `session.send` let a mod observe the messages. Return `next(e)` from both to pass each message through unchanged:plugins/mods/api see the edit
One source agreesOne thing we can check says the same as this entry.
Anthropic's documentation agrees
Anthropic's documentation has since written up session.receive, on Use the mods API.