mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-08-11 08:47:33 +00:00
Collapse the DM windowing system to a single source of truth and remove the accumulated duplication. - One window: the gift-wrap (NIP-17) loader owns the only TimeWindowPagination. The rooms-list NIP-04 loader no longer keeps its own window advanced "in lockstep" — like the conversation loader, it now follows the gift-wrap window's `windowSince` and re-requests via `reload()`. Removes its window, loadMore, loadEverything and exhausted; the rooms screen drives giftWraps.loadMore() + nip04.reload() and reads giftWraps.exhausted alone. - Shared listener: extract WindowLoadTracker.trackingListener(forward) — the one place that feeds onActivity/onRelayResponded — replacing three copies of subscription-listener boilerplate and two newEose overrides. - Drop the cold-boot instrumentation (bootStartMs/bootEventCount/bootEoseLogged + verbose per-call logs) from the gift-wrap manager; it was development scaffolding. (The debug-gated DmRelayDiagnosticsLogger stays.) - Renames for clarity: DMsFromUserFilterSubAssembler -> ChatroomListNip04SubAssembler, ChatroomFilterSubAssembler -> ChatroomNip04SubAssembler, field nip04Dms -> nip04. Behavior is unchanged: same auto-fill/prefetch, same all-relays-or-idle gating, same gap-free conversation reveal. ~250 fewer lines and no more lockstep concept.