Files
eranos/src
shakespeare.diy 0f630fc9e8 Use Agora's useAuthor pattern: pool race + losers bracket fallback
Replace the custom batching layer with Agora's proven approach:
1. Fast path: pool.query() races all relays via EOSE timeout
2. Losers bracket: if pool returns empty, query each relay
   individually and resolve on the first hit

The useAuthors batch hook in Feed.tsx still prefetches profiles
in bulk, seeding the cache. Individual useAuthor calls hit cache
first (5min staleTime) and only miss for uncached pubkeys.

Keep the stats batching (useEventStats) since that genuinely
reduces 2N REQs to 2 total per flush window.

Co-authored-by: shakespeare.diy <assistant@shakespeare.diy>
2026-02-18 00:23:53 -06:00
..
2026-02-17 19:50:17 -06:00