RoomMemberEvent.Membership is emitted on RoomMember/MatrixClient, never on Room, so the (room as any).on() handler was dead. Subscribe on the client filtered by roomId; drop the cast. Fixes #61 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PPmy3tPq869XDW4njjVaKA