Files
amethyst/desktopApp
Claude 00e06cfed4 fix(commons): chunk the user-metadata REQ, unstick the quoted-note embed
Three things the review of this branch turned up.

filterUserMetadataForKey put every author for a relay in one filter. Nothing
capped it, and the thread fix earlier in this branch made it easy to hit: a
thread renders every reply row in one pass, not lazily, so every reply author
subscribes at once. A relay that clamps `limit` answers only part of an
oversized batch and says nothing, which would have left exactly the pubkey
stubs that fix set out to remove. Chunked at MAX_VALUES_PER_FILTER through the
same forEachChunk that FilterMissingEvents and FeedMetadataCoordinator use.
Each chunk of the update filter keeps the group's earliest EOSE, so splitting
the authors never narrows the window any of them is asked about.

QuotedNoteEmbed collected the note's metadata flow and never read the value,
so the collection subscribed but nothing in the composition depended on it:
when the fetched event landed the embed stayed on "Loading quoted note...".
Same one-line shape as the thread reply rows — read note.event keyed on the
metadata slot. Pre-existing, but the same bug family this branch is fixing.

LocalCacheHost's KDoc pointed at LocalCache.host, which is not the property
(EventCache.appHost is), and said nothing about the hazard this move creates:
:nappletHost can now see LocalCache, where before it could not compile a
reference. A stray one no longer fails fast on an unset Amethyst.instance; it
quietly builds a second empty cache in the :napplet process.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KkULS5SVq4GHDdoCzajKi8
2026-09-21 15:06:24 +00:00
..