mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-10-05 19:28:25 +00:00
18 of the 31 NIP-51 list kinds had no branch in RenderNoteRow and fell through to RenderTextEvent, which renders `content`. For a list, `content` is never body text: it is the NIP-44 payload holding the private members. A divine.video kind-30005 video list therefore rendered on screen as the base64 blob it is, and a mute list or bookmark list reached from search did the same. Each kind now has its own renderer, so name, description and members are drawn as what they actually are rather than approximated: - people (10017, 10020, 10101, 30007, 39092) draw profile rows - bookmarks and curation sets (10003, 30001, 30003, 30004, 30006) embed the notes and articles they reference - coordinates (10018, 10090, 30267) embed the repository, feed or app - hashtags (10015, 30015) open their feed; geohashes (10081) do not, because a geohash is a place and not a hashtag - the mute list (10000) is the one kind whose members are four different things at once, so it draws each of person, hashtag, word and silenced thread as itself - kind mute sets (30007) title themselves by the kind they mute, since NIP-51 says their `d` tag MUST be the kind string and is not a name They share only a frame: title, description, members, and one honest line when the viewer is not the author and the private half is closed to them. The frame matches DisplayPeopleList and DisplayRelaySet, including the collapse past three members. hasEncryptedContent() also learns about the two NIP-51 base classes. Its own docs already said these payloads "must never reach the screen"; lists were simply missing from the list, and naming them by base class rather than one kind at a time is what keeps a kind added later from repeating this. Guarded on a non-empty content, so an all-public list is not mislabelled as private. Not verified on a device: there is no emulator here, so the nineteen new cards compile and their protocol plumbing is tested, but their layout is unreviewed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JLEq2G6U29mKV8cfSTamZ9