mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-08-10 08:27:04 +00:00
Documents the full status matrix for both community protocols, split by who decides each status: the relay/community side (authoritative, event-backed) or our own device (local bookkeeping like "Add to Messages"). Covers Buzz/NIP-29 per-channel membership (39001/39002 + the NIP-43 tenant fallback, the client-only PENDING, NIP-OA virtual membership) and the 39000 flags that change what each status can do; the per-relay/workspace tenant statuses (owner/admin/member, banned, timed out, archived identity); Concord's owner-rooted OWNER/ADMIN/MEMBER/BANNED/NONE plus dissolved, epoch, stranded and the Three Removals; per-channel Concord state; and the device-local layer (kind-10009 vs kind-13302, invites, dismissals, stars, workspaces, dialect, view modes, unread), including why remove-from-Messages, ignore and leave are three different actions. Also records the gaps the mapping surfaced: private Concord channels are listed but their plane keys are never derived, RoleScope is decode-only so a channel-scoped role grants community-wide power, Concord Kick (3309) and NIP-RS read state are unwired, and Buzz presence (20001) still collides with geohash presence in EventFactory. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q3KXHjmCpUDzrSRyxatbyB