mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-08-11 08:47:33 +00:00
Membership is now derived from the relay's own signed lists (kind 39001 admins / 39002 members) instead of the client's kind-10009 intent: - RelayGroupChannel gains members/admins (from 39002/39001), a RelayGroupMembership derivation (ADMIN/MODERATOR/MEMBER/NONE, + a client-side PENDING), and a member count. LocalCache consumes 39001/39002 into the channel. - RelayGroupTopBar shows the real state: member count and your role in the subtitle; a Join button when you're not a member, an optimistic "Requested" after you tap Join (until the relay's roster confirms), and Invite (mods only) + Leave once you're in. Invite is gated on moderate rights. Caveat: private groups may hide 39002 from non-members, so state resolves after the roster is visible; a targeted 9000/9001 subscription could tighten that later. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B5MLY4hq5LXJ2D5WeLRyXj