diff options
| author | Adam Soltys <[email protected]> | 2026-09-12 22:53:21 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-09-12 22:53:21 -0700 |
| commit | fae3468590d9e7627e855f6b5636b116d6582f3d (patch) | |
| tree | 12aae8d70bf0d8ec187de19a24598d38a2290aef /src/format.js | |
| parent | d57962cb896b360295ec107afd50d2ce8701c401 (diff) | |
| download | coinosv3-fae3468590d9e7627e855f6b5636b116d6582f3d.tar.gz coinosv3-fae3468590d9e7627e855f6b5636b116d6582f3d.zip | |
Feed rows wore punks and npubs because we asked for profiles one at a time.
A screenful of eighty rows sent eighty kind-0 REQs in the same breath.
Relays cap how many subscriptions a connection may have open, most were
refused, the five-second timeout expired, and the empty answer was then
believed for ten minutes — which is a real account dressed as a punk with
a shortened npub for the rest of the session. Measured against this
wallet's own feed, 131 of the 133 people on screen had a kind 0 sitting
on relays we were already connected to. It was never reach; it was us.
So profiles go out in batches: a 250ms beat collects a paint's worth of
rows into one request of up to 200 authors, and each batch paints as soon
as it lands rather than waiting behind the outbox fallback chasing
stragglers. A miss now backs off instead of sticking — fifteen seconds,
then half a minute, up to the ten minutes that's right for someone who
genuinely has no profile.
And noteRow no longer calls prefetchProfilePage. That fetches an author's
whole page — kind 0, relay list, last thirty notes — which for twenty rows
is sixty requests, and is what starved the batch in the first place. A row
is not a profile tap; the page still loads when the profile is opened.
profile-feed-test had rotted in three places (onboarding copy, and
.header-msgs now matching the settings button first) — repaired, not
rewritten.
Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_019mrt228Upn9nNCwGixzSLx
Diffstat (limited to 'src/format.js')
0 files changed, 0 insertions, 0 deletions
