<feed xmlns='http://www.w3.org/2005/Atom'>
<title>coinosv3.git/tools/feed-custom-test.js, branch master</title>
<subtitle>coinos v3 — bitcoin, Ark, Lightning and nostr wallet (web + Android)</subtitle>
<id>https://git.coinos.io/coinosv3.git/atom?h=master</id>
<link rel='self' href='https://git.coinos.io/coinosv3.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/'/>
<updated>2026-10-12T05:17:32Z</updated>
<entry>
<title>Feed menu: Delete feed sits beside Edit. Dropping a feed you built meant opening its editor first (a saved timeline already had the drop in the ⋯ menu, having nothing to edit); the menu now offers Delete feed for every feed of yours, Edit above it where there is something to edit. The editor keeps its own Delete feed. feed-custom-test deletes "Coin talk" from the menu.</title>
<updated>2026-10-12T05:17:32Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-10-12T05:17:32Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=4f49202c80662e617c9d666928b7e40df37cb9b8'/>
<id>urn:sha1:4f49202c80662e617c9d666928b7e40df37cb9b8</id>
<content type='text'>
Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Feeds: Everything and Follows + lists are no longer built-in chips; any custom feed can be one. The editor gains "Everyone on my lists and packs" (the people of all your other feeds and packs, read fresh each time the feed opens) and "Posts from anyone on hashtags I follow" (your topic feeds' tags and your kind-10015 interests, OR'd in beside the feed's people, or the whole feed when it has no people). The editor reads a feed as saved, never expanded, so the lists don't get copied into it</title>
<updated>2026-10-09T15:36:12Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-10-09T15:36:12Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=57656c513e72646c4b55fd44b1ff2cdc96624c3f'/>
<id>urn:sha1:57656c513e72646c4b55fd44b1ff2cdc96624c3f</id>
<content type='text'>
Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01MgAFLnkF7KrdhuyCLMNgtL
</content>
</entry>
<entry>
<title>Amethyst's feed model: an Everything feed (your follows, everyone on your lists and packs, and posts from anyone on a hashtag you follow: your topic feeds' tags and your NIP-51 interests, kind 10015) and a Follows + lists feed beside Following, built from your feeds and offered once there's something to add. Long names in search results end in an ellipsis instead of running off the card</title>
<updated>2026-10-09T05:56:46Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-10-09T05:56:46Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=f555cba5723453fc48dfbcba234da351b37db2f0'/>
<id>urn:sha1:f555cba5723453fc48dfbcba234da351b37db2f0</id>
<content type='text'>
Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Browser tests: public relays answered in the page, never reached</title>
<updated>2026-10-07T19:02:51Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-10-07T19:02:51Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=86d9818abfc160dac031bb292abe28d6f28fc624'/>
<id>urn:sha1:86d9818abfc160dac031bb292abe28d6f28fc624</id>
<content type='text'>
A suite run let ~90 throwaway test wallets subscribe and publish on public
relays from one home address, and nos.lol and relay.damus.io banned it.
tools/puppeteer.js wraps puppeteer-core: every socket to a non-local host
gets an in-page stand-in relay (EVENT -&gt; OK, REQ -&gt; EOSE). Tests that read
real content launch with { relays: 'read' } (real reads, publishes answered
in place); feed-live, chat-layout and cordn-ui launch with { relays: 'live' }.
LIVE_RELAYS=read|1|host,... overrides per run.

profile-key-qr: measure the QR again if a repaint swapped it out.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Feed tests: open the Feed from the bottom nav, on Following</title>
<updated>2026-10-07T15:34:45Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-10-07T15:34:45Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=8dfc629d129c6c1a8a3ed38a935e659eee9f67c7'/>
<id>urn:sha1:8dfc629d129c6c1a8a3ed38a935e659eee9f67c7</id>
<content type='text'>
The feed left the chat home for a bottom-nav tab, and a wallet with no
feed remembered opens on Popular, so these tests click the Feed tab and
seed Following as the wallet's last feed. Also brought up to date:
- feed-live: the pill lands on the oldest new post; arrivals at the top go
  in above the first post (held still), not behind the pill; scroll up a
  screen at a time (one jump lands before the windowed rows are back)
- feed-custom: only the feeds' chips are counted (not All/Images/…); the
  follows box is not the first checkbox any more; the last feed is
  remembered across a reload; the pack shows in the feed's editor (the chat
  home no longer lists the feed)
- feed-follow: Feed tab + Following chip instead of the messages-home row;
  the feed opens at ten posts (tall ones, so a page doesn't fill the screen)
- moderation: nos.lol is a local stand-in (a relay that won't connect held
  the mute list back past the checks)

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>The feed header keeps its room on a phone: a ⋯ menu for the feed itself, a pencil for a new post.</title>
<updated>2026-09-29T01:16:58Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-09-29T01:16:58Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=cfac411e3859f03af7c8c1fe4deab6ab6bae42d0'/>
<id>urn:sha1:cfac411e3859f03af7c8c1fe4deab6ab6bae42d0</id>
<content type='text'>
Save feed, Relays, Share and New post sat in the title row and wrapped on a
phone. Share, Relays and Save or Edit now live in the feed's ⋯ sheet, and
New post is a pencil; the title has the width.

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01VhUKyXKtsJ67QAFfb7QR9D
</content>
</entry>
<entry>
<title>The default public feed is Popular, not the firehose: what people reacted to, in your language, with the machine posts gone.</title>
<updated>2026-09-28T05:34:33Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-09-28T05:34:33Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=3b3ccf7bcab9bf5344714fb8722667a49a06e53f'/>
<id>urn:sha1:3b3ccf7bcab9bf5344714fb8722667a49a06e53f</id>
<content type='text'>
A brand-new post has no reactions yet (of 73 fresh English posts on the
four relays, one had two), so Popular starts from the other end: the latest
reactions, reposts and zaps, counted per post by distinct people, then the
posts two or more people touched. Older pages walk the reactions back in
time; new ones arrive by a two-minute poll. At the door, JSON and other
machine output are dropped, and so is anything not in the reader's language
(script first, then a vote of function words among the Latin-script
languages the app speaks; unknown passes). The raw firehose stays at
/feed/all. A language selector sits under every feed, and changing it
rebuilds the curated ones.

A tall video scrolled past used to let go of its media at once and collapse,
shifting the page under a thumb; it now waits a moment and holds its height
until the clip is back. A tap on a full-screen picture closes it.

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01VhUKyXKtsJ67QAFfb7QR9D
</content>
</entry>
<entry>
<title>Everything on the coinos relay is a feed of its own, and every feed can read from relays of your choosing.</title>
<updated>2026-09-28T03:20:14Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-09-28T03:20:14Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=78f49d1b44952e9c7dba95013ab47af542fea929'/>
<id>urn:sha1:78f49d1b44952e9c7dba95013ab47af542fea929</id>
<content type='text'>
Plain /feed is the firehose: every post relay.coinos.io carries, no filter.
It sits beside Following as a built-in chip for wallets and opens as a
session feed for a visitor.

A feed's relay list is independent of what it asks for. The Relays button
in the header opens a panel to add to or take from the list; empty means
the usual choice (each author's outbox, the wide relays for a topic, the
coinos relay for the firehose). The list rides in the URL as ?r=…, on every
kind of feed, so a shared link reads where you read.

A feed state dropped while its fetch was still out used to swallow the
answers meant for its replacement; a relay change showed nothing.

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01VhUKyXKtsJ67QAFfb7QR9D
</content>
</entry>
<entry>
<title>Starter feeds: #gardenstr only until a Bitcoin follow pack is chosen.</title>
<updated>2026-09-22T01:12:04Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-09-22T01:12:04Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=562a52cda54a97f1595fbcdb5803d7c49421b825'/>
<id>urn:sha1:562a52cda54a97f1595fbcdb5803d7c49421b825</id>
<content type='text'>
Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01Tmfg8k5f3TbNJS34qiqHAp
</content>
</entry>
<entry>
<title>New identities start with something to read: Adam and coinos followed, a Bitcoin feed, and #gardenstr.</title>
<updated>2026-09-21T23:55:02Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-09-21T23:55:02Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=2fefb01640a0d4c353ac0dd351f2059688b7d73a'/>
<id>urn:sha1:2fefb01640a0d4c353ac0dd351f2059688b7d73a</id>
<content type='text'>
A wallet the wizard made from fresh words, or a sign-in that found no
wallet on its identity, gets one kind-3 update following the two coinos
accounts (a sign-in identity only if it follows nobody yet), plus two
starter feeds. The Bitcoin feed has a follow-pack slot (STARTER_BITCOIN_PACK)
and reads the #bitcoin topic until a pack is chosen; #gardenstr shows what
a topic feed is. Once per identity. The feed test now runs through the
real first run, reading the words off the screen.

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01Tmfg8k5f3TbNJS34qiqHAp
</content>
</entry>
</feed>
