Files
amethyst/commons
Claude f0b0d288be feat: render every NIP-51 list kind, instead of printing its ciphertext
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
2026-09-22 13:09:14 +00:00
..