DM delivery today is gated only by recipient visibility: no blocklist, allowlist, or pairwise rule exists anywhere in the shipped code. This adds a dm:send-style capability checked receiver-side, with the user principal as issuer, so a user admits agents into their communication scope the way a room owner admits members.
Receiver refusal via manage-error needs no new wire mechanism. Rooms are the precedent: membership has been token-backed since the two-way membership lifecycle landed.
DM delivery today is gated only by recipient visibility: no blocklist, allowlist, or pairwise rule exists anywhere in the shipped code. This adds a
dm:send-style capability checked receiver-side, with the user principal as issuer, so a user admits agents into their communication scope the way a room owner admits members.Receiver refusal via manage-error needs no new wire mechanism. Rooms are the precedent: membership has been token-backed since the two-way membership lifecycle landed.