From 945dd2f568e22614e8b28528acdc32540d1dbbb9 Mon Sep 17 00:00:00 2001 From: "@permadeath.com" Date: Wed, 12 Aug 2026 18:33:37 -0400 Subject: [PATCH] docs: the follow set is the one thing cached on disk README said both scopes live in session storage and nothing is written to disk, which this branch made false. TODO's note on the 2000-record cap gets the same correction: the walk is no longer the popup's, so raising that cap is now a question about a PDS's once-a-day load rather than about how long a window may hang. --- README.md | 22 ++++++++++++++++------ TODO.md | 20 ++++++++++++++------ 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 3dadf3a..fbaeec4 100644 --- a/README.md +++ b/README.md @@ -112,13 +112,23 @@ substandard shows a badge when the site you're visiting has a standard.site publ link card from the page's own Open Graph tags, which is why the text is a title and a URL rather than a record embed — see `src/lib/share.ts`. - How long a read keeps depends on whose data it is (`src/lib/cache.ts`). - Your own repo — subscriptions, follows, blocks, labeler subscriptions — - keeps for an hour and is dropped the moment this extension writes to it, - so subscribing never leaves the popup insisting you have not. Anything - about somebody else's publication, profile or labels keeps for a day, - since nothing you do changes it. Both live in session storage, which the - browser clears when it closes: nothing about which publications you + Your own repo, where this extension also writes — subscriptions, blocks, + labeler subscriptions — keeps for an hour and is dropped the moment it + writes, so subscribing never leaves the popup insisting you have not. + Anything about somebody else's publication, profile or labels keeps for a + day, since nothing you do changes it. Both live in session storage, which + the browser clears when it closes: nothing about which publications you visited is written to disk. +- Your follow list is the exception, and keeps for a day on disk. Nothing + here creates or deletes a follow, so a stale set cannot hide something you + did; and reading it is one request per hundred follows against your own + PDS, which is five hundred requests for an account following fifty + thousand people. That is not a walk to repeat every time the browser + restarts. It is the one value allowed on disk because of what it is not: a + follow list is your own public social graph, and unlike the rest it records + nothing about where you have been. The walk runs in the background worker, + starting when you sign in, so no popup ever waits on it — the subscriber + count draws first and the faces appear when it lands. - The refresh icon next to the Open button re-fetches everything, since records can change remotely. Refresh bypasses every cache in the path, including the well-known probes — a publisher correcting their site sees diff --git a/TODO.md b/TODO.md index 1b42f72..9277374 100644 --- a/TODO.md +++ b/TODO.md @@ -237,17 +237,25 @@ intersecting two lists, and both are capped: says so in its tooltip. - The follow set comes from `listRecords`, which stops at 2000 records. An account following more than that silently loses the tail, and unlike the - scan cap nothing reports it beyond the count `src/popup/cards/follows.ts` - logs. + scan cap nothing reports it beyond the count `src/background.ts` logs. The first cap binds on a publication and has not bound on any measured so far (the largest had 53 subscribers). The second binds on the *reader*, and now costs more than a face: the owner card's "Following" line reads the same set, so a reader with more than 2000 follows can be told they do not follow an -account they followed early. Both are worth revisiting together, and the fix -for the second is probably to ask Constellation — or the reader's own repo, by -rkey — about the one account in question rather than to hold the whole follow -set in the popup. +account they followed early. + +Raising the second is cheaper than it was. The walk runs in the background +worker and is cached for a day on disk (`graph` in `src/lib/cache.ts`), so its +cost is once-a-day and off every render path; 2000 is a number inherited from +when the popup did this inline, and the question is now how many requests a +reader's own PDS should take once a day (a 50,000-follow account is 500) rather +than how long a popup may hang. + +The alternative is to stop holding the whole set and ask about the one account +in question — Constellation, or the reader's own repo by rkey. That answers the +owner card directly; the subscriber row would need the reverse question, which +of a publication's subscribers the reader follows. ## Let the user manage their labelers -- 2.51.2