Private
Public Access
start_dm_endpoint created the room and membership correctly but never sent the room_added signal every other "you're now in a room" path (add_member) already sends -- without it, GET /rooms/mine is only fetched once at app mount, so a DM started against an already-open client stayed completely invisible until a manual reload. The recipient still got an offline push/desktop notification (that path is independent, via _notify_offline_members), just nothing to actually open when they went looking in an already-loaded session. Added a test mirroring the existing add_member broadcast test exactly (recipient connected but never joined any room channel, proving the signal alone is what tells their client the room exists) -- it failed before this fix and passes now. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>