mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-08-09 16:14:40 +00:00
A Buzz DM is a relay-authoritative NIP-29 group whose h/id is a relay-generated UUID, so its timeline reuses the whole relay-group chat stack unchanged. This adds the missing discovery + product layer: - commons: BuzzDmRegistry — process-wide registry fed by LocalCache from the relay-signed DmCreatedEvent (41001) and per-viewer DmVisibilityEvent (30622); tracks conversations (channel id -> participants/relay) and the viewer's hidden set. Unit-tested. - LocalCache: record 41001/30622 into the registry on consume (was store-only). - Account: openBuzzDm (41010), hideBuzzDm (41012), addBuzzDmMember (41011). The relay assigns the channel UUID and confirms via 41001 — we never mint it. - Android: BuzzDmListViewModel (two-phase fetch: discover 41001/30622 #p=me, then fetch each DM's 39000-39003 roster so the shared composer's member gate passes), BuzzDmListScreen (inbox), BuzzNewDmScreen (publish 41010, await the 41001, jump into the shared RelayGroupChatScreen). Reached from a Direct Messages card on the Workspaces tab. - CLI: amy buzz dm list/open/hide/add-member, mirroring buzz-cli. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8KBSw6smQRyXLiWHeDsZ8