tane/packages/commons_core/test/social
vjrj f17ae7751c perf(market): paginate Nostr offer discovery, infinite scroll, memory cap
Bound market memory and let large areas page instead of loading everything:
- DiscoveryQuery gains an until cursor; OfferTransport gains discoverPage()
  (one-shot, EOSE-bounded, newest-first) alongside the existing live discover()
  stream, which now accepts since so it only carries NEW offers going forward.
- NostrOfferTransport.discoverPage sorts by created_at desc and derives the
  next cursor from the oldest event seen (not the oldest type-matched one, so
  filtering never skips a page).
- OffersCubit: discover() fetches the first page + opens a since=now live sub;
  loadNextPage() pages further back; the in-memory list is capped at 400
  offers (each can carry a ~40KB inline photo thumbnail, so unbounded growth in
  a busy area was a real OOM risk).
- market_screen: infinite scroll via a scroll-position trigger + footer
  spinner, instead of a single unbounded ListView.
- Added discoverPage unit tests (commons_core) and cubit pagination tests
  (first page/cursor, accumulation, cap, cross-page dedup).
2026-07-20 22:53:48 +02:00
..
geohash_test.dart feat(block2): geohash encoder in commons_core (for 'use my location') 2026-07-10 03:18:30 +02:00
nostr_ids_test.dart feat(trust): full Duniter web-of-trust membership (params + referents) 2026-07-10 21:02:08 +02:00
nostr_offer_transport_page_test.dart perf(market): paginate Nostr offer discovery, infinite scroll, memory cap 2026-07-20 22:53:48 +02:00
nostr_plantare_transport_test.dart feat(plantare): PlantareTransport foundation in commons_core 2026-07-14 11:21:46 +02:00
nostr_profile_test.dart feat(block2): Ğ1 — publish a Ğ1 address + 'Pay in Ğ1' in chat (levels 1-2) 2026-07-10 13:06:38 +02:00
nostr_report_transport_test.dart feat(social): standard NIP-56 reporting — ReportTransport in commons_core, report sheet on offers and chats, local hide + optional block 2026-07-13 08:26:38 +02:00
nostr_sync_transport_test.dart feat(sync): encrypted device-to-device sync transport (core foundation) 2026-07-10 23:16:07 +02:00
nostr_transports_test.dart feat(core): person-to-person ratings transport (kind 30778) 2026-07-11 13:06:53 +02:00
plantare_test.dart feat(plantare): PlantareTransport foundation in commons_core 2026-07-14 11:21:46 +02:00
rating_test.dart feat(core): person-to-person ratings transport (kind 30778) 2026-07-11 13:06:53 +02:00
relay_pool_test.dart feat(block2): relay pool — publish to many relays, discover deduped, tolerate failures 2026-07-10 10:35:39 +02:00
saved_search_test.dart feat(social): add SavedSearch model with shared offer matcher 2026-07-17 13:18:29 +02:00
web_of_trust_test.dart feat(trust): full Duniter web-of-trust membership (params + referents) 2026-07-10 21:02:08 +02:00