aboutsummaryrefslogtreecommitdiffstats
path: root/src/feed-cache.js
Commit message (Collapse)AuthorAgeFilesLines
* Conversations: a feed of the replies the people you follow write, each under ↵Adam Soltys2 days1-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the post it answers. Amethyst's Conversations beside its New Threads (Adam, 2026-10-16: "a replies mode or Conversations mode like Amethyst has"). The Following feed showed their posts and dropped every reply, so what people were saying TO each other only turned up by opening threads. Now a built-in Conversations chip sits beside Following (id 'replies'; its own notes, clock, disk cache and relay choice like the other built-ins): the same people, asked for notes and NIP-22 comments, keeping the replies — a reply as NIP-10 marks it, a comment, never a quote or a repost (feedKinds/feedKeeps; the merge, seeding, borrowing, the live watch and the media index all go by them). Each row shows what it answers above it — "↩ Replying to" and the quote card of the parent (the e tag marked reply, else root, else the last; a comment's e or E), tapping the card opens that post, tapping the reply its thread at the reply — and the header drops its "reply" tag there. The parent is usually in hand already (the Following feed, a thread, someone's page: noteInHand, which quotedNote checks before any relay — nostr:nevent quotes gain the same), and a thread opened from such a row paints its root at once instead of fetching it. In a conversations feed the parent counts as part of the row, so it arrives whole with the first screen (noteReady's parent option, per feed); a profile's Replies tab shows the same context and fills its cards in. Not a shareable URL (it is nobody's timeline), so no Share in its menu. Any custom feed can be one: "Replies instead of posts" in the editor (def.replies, synced with the definition), named in its summary. The disk cache now keeps comments. tools/feed-conversations-test.js: Following keeps posts only; the chip; the replies newest first with the parent card from hand (no relay asked) and a missing parent said so; the menu without Share; the reply's own tap opens its thread at the reply, with the root painted from hand; the card's tap opens the parent; Back lands on Conversations; the profile's Replies tab shows the context, Posts none; a custom conversations feed via the editor borrows the replies from the feeds in hand, not the posts. feed-custom-test lists the new chip. Pre-existing failures not touched: feed-custom-test's "a tagged post lands in it"/"lands in Everything" and feed-streaming-test's pill position fail on clean HEAD the same way; feed-follow, feed-cache, own-post-feeds, feed-list, feed-media-views, feed-switch-seed, profile-pager, thread-pager, feed-repost, feed-live, feed-new-posts, feed-window, feed-choice-per-wallet, feed-nav-destination, feed-wallet-back, moderation, feed-mention-tap and feed-reboost pass. Co-Authored-By: Claude Fable 5.1 <[email protected]> Claude-Session: https://claude.ai/code/session_01J1Kon8bxJoHRpJdSzshCkp
* Switching feeds paints posts at once instead of a spinner while the relays ↵Adam Soltys2026-09-301-7/+26
| | | | | | | | | | | | | | | | | | | answer. The disk cache held four feeds, so with more chips than that (or one never opened here) a switch opened on nothing. Now: - up to twelve feeds on disk: the four read last keep a page of 30, the rest 5 seed posts (same 256 KB budget); - once the feed on screen settles, every other feed with nothing on disk has its first posts fetched ahead, one small request each, every 15 min; - a feed with nothing on disk borrows matching posts (its people, its topics) that open feeds already hold. tools/feed-switch-seed-test.js: with 8 s relays, a fetched-ahead feed and a never-opened topic feed both paint rows at once (fails on the old code). Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01WMMwWYJkPQxLgfMsY7hWcU
* Polls (NIP-88): options with each one's share of the vote, votable from the ↵Adam Soltys2026-09-281-1/+1
| | | | | | | | | | | | | | feed and the thread. A kind 1068 poll showed as "an event this app doesn't show". Now its options are rows with the vote share behind them (kind 1018 votes, each person's latest counts, single/multiple choice, endsAt honored); a tap votes, marked as yours at once. A quoted poll is pictured in its card. Feeds and profiles list polls alongside notes, and a thread's root is looked up by id with any kind, so replies to a poll find it. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01Du1qT1wbkYwYK6zkGH79Rp
* Prefetch a smaller feed and bound its local cacheAdam Soltys2026-09-241-0/+53