diff options
| author | Adam Soltys <[email protected]> | 2026-10-20 12:24:35 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-10-20 12:24:35 -0700 |
| commit | d0752d70b54e9d58bba5e11aea06c9ba1678e89b (patch) | |
| tree | af890d6fd9da9cb78b94a4013607ffee7cefe58f /src/feed-cache.js | |
| parent | 1e0d551daae8d09f86dbf54ab67bf52610c0c9ac (diff) | |
| download | coinosv3-d0752d70b54e9d58bba5e11aea06c9ba1678e89b.tar.gz coinosv3-d0752d70b54e9d58bba5e11aea06c9ba1678e89b.zip | |
A reply under "Couldn't find that note on the relays" told nobody anything (Adam, 2026-10-20), so once every lookup comes back without its post it isn't shown in a feed's Conversations view (its thread, notifications and the replier's own Replies tab keep it; a lookup that later finds the post brings it back).
The lookups miss less:
- A NIP-22 comment (kind 1111) names its parent's author at e-tag [3], not NIP-10's [4], so every comment's parent lost its author and the author's outbox went unasked. fiatjaf's comment on Kieran's routstr post lives on relay.snort.social (its hint), Kieran's pyramid.fiatjaf.com and ditto: none of ours.
- A reply that names no author asks the outboxes of the people it's addressed to (its p tags, up to three).
- The relay the reference itself names is asked even when this device has marked it sick.
- A post read in Following (or the feed in use) is found in that feed's disk cache too, so a Conversations view opened right after a reload doesn't take its replies for orphans.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_013ZDf1cyCQLkfjftYhymZAg
Diffstat (limited to 'src/feed-cache.js')
| -rw-r--r-- | src/feed-cache.js | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/feed-cache.js b/src/feed-cache.js index a4f3ac9..cf3323e 100644 --- a/src/feed-cache.js +++ b/src/feed-cache.js @@ -54,6 +54,8 @@ export function createFeedCache(storage, prefix, now = Date.now) { return value.notes; } catch { return []; } }, + // a feed's posts as stored, without counting as a read + peekNotes(id) { const v = peek(id); return v && Array.isArray(v.notes) ? v.notes : null; }, save(id, notes) { try { storage.setItem(keyOf(id), JSON.stringify({ at: now(), notes: compact(notes) })); sweep(keyOf(id)); } catch {} }, |
