Files
Vitor PamplonaandClaude d0cbdaf06e Repoint app call sites to the new relationship accessors
Call sites that read an event's p/e/a/q tags through generic accessors now
use the named accessors added in the previous commit:

- EventCache: zap receipt/request and live-activity routing via
  zappedAddresses(), nutzaps via zappedEventId(), reactions via
  originalAddresses(), chat replies via ChatEvent.replyTargetIds().
- Cashu pending tokens (destroyedReferences), Marmot removals
  (TagArray.removedMessageIds), Buzz on-behalf-of authors
  (TagArray.buzzOnBehalfOf), batch unfollow (ContactListEvent.unfollowUsers),
  NIP-17 note mentions (mentionKeys).
- Notifications: reaction/repost-to-me (originalAuthor /
  originalAuthorKeys), Buzz mentions and thread replies (mentionKeys,
  StreamMessageV2Event.mentions), mention checks in the notification
  summary (mentionKeys).
- UI: emoji-pack membership (EmojiListEvent.hasEmojiPack), user status
  links (UserStatusEvent.referenced*), note/poll mention badges
  (mentionKeys), note composer draft loading (threadReferenceIds,
  mentionKeys), DVM job request (jobRequestId), desktop reaction and zap
  address lookups.

Behavior is unchanged except that malformed ids and addresses (not 64-hex,
not kind:pubkey:d — including an naddr1 string inside an `a` tag) no longer
resolve.

Left generic, with the reason: Cashu wallet nutzap check and DVM
customer/response filters (the code matches ANY tag, the accessor reads the
single one the NIP allows), Account's two calls on untyped Event receivers,
the desktop NIP-17 template hints (unsigned template, no accessor), and the
PollEvent draft's e/a read (PollEvent defines no e/a relationship).

Tests: quartz jvmTest (6982), commons jvmTest (3234), commonsUI jvmTest
(175), desktopApp test (371) green.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UrXSz9uRnNLVru3AvD3wSa
2026-10-06 15:07:06 +00:00
..