<feed xmlns='http://www.w3.org/2005/Atom'>
<title>coinosv3.git/tools/feed-custom-test.js, branch fdroid-v1.9</title>
<subtitle>coinos v3 — bitcoin, Ark, Lightning and nostr wallet (web + Android)</subtitle>
<id>https://git.coinos.io/coinosv3.git/atom?h=fdroid-v1.9</id>
<link rel='self' href='https://git.coinos.io/coinosv3.git/atom?h=fdroid-v1.9'/>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/'/>
<updated>2026-09-29T01:16:58Z</updated>
<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>
<entry>
<title>First run: "Create a new wallet" shows the twelve words at once.</title>
<updated>2026-09-21T19:04:25Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-09-21T19:04:25Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=9b4fa70a978e3685c9bb2b9a68f855626ac6f39e'/>
<id>urn:sha1:9b4fa70a978e3685c9bb2b9a68f855626ac6f39e</id>
<content type='text'>
No create/import tabs and no Generate button inside the wizard: the words
appear the moment the button is tapped. Underneath, "Have an existing seed
or entropy to import?" swaps to the import pane (which has its own entropy
door), and "Create a new wallet instead" swaps back with fresh words. The
create/import card elsewhere (adding an account) keeps its tabs. Tests
that entered through the old tab go through the new line.

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01Tmfg8k5f3TbNJS34qiqHAp
</content>
</entry>
<entry>
<title>Feeds: a following.space link is read before any naddr in the pasted text; the test clears its field between searches.</title>
<updated>2026-09-21T06:23:13Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-09-21T06:23:13Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=e27eaccee624d9bbc84ce4443d7cfba2db4fa15d'/>
<id>urn:sha1:e27eaccee624d9bbc84ce4443d7cfba2db4fa15d</id>
<content type='text'>
Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Feeds: packs are found by a few letters of their title, and by following.space's real link form.</title>
<updated>2026-09-21T06:20:41Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-09-21T06:20:41Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=501da85c85e014eb48e6cd7df246875fadf27cb3'/>
<id>urn:sha1:501da85c85e014eb48e6cd7df246875fadf27cb3</id>
<content type='text'>
NIP-50 search only knew the packs the search relay carried — 'Niche
Accounts' lives on damus and nos.lol, not relay.nostr.band. So the editor
now indexes the wide relays' packs once per session and matches titles and
descriptions by substring. A following.space link is /d/&lt;id&gt;?p=&lt;pubkey&gt;,
not an naddr; both are accepted.

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Feeds: follow packs from following.space (NIP-51 kind 39089) as a feed's people.</title>
<updated>2026-09-21T06:14:41Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-09-21T06:14:41Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=19ac1c46091e969075d998af95d304d82cbba259'/>
<id>urn:sha1:19ac1c46091e969075d998af95d304d82cbba259</id>
<content type='text'>
A feed can name packs as well as people: the pack's current members are
its authors, read from the pack event itself and cached on disk, refreshed
hourly when a feed using it is opened — so a curator's change reaches the
feed by itself. The editor takes a pasted following.space link or naddr, or
searches packs by title (NIP-50 on relay.nostr.band). parseNostrRef learned
naddr.

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Feeds: Following is one of many; topics from search and #tags; the bolt is amber only for your own zap.</title>
<updated>2026-09-21T04:24:14Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-09-21T04:24:14Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=9ef5c7633508cfecd19050bbcc637e091738de7e'/>
<id>urn:sha1:9ef5c7633508cfecd19050bbcc637e091738de7e</id>
<content type='text'>
Custom feeds live in the synced messages state — a name, everyone you follow
and/or hand-picked people, and topics (hashtags, any of them; with people
set as well, only their posts on those topics — the way a nostr filter
composes authors and #t). Each feed keeps its own notes, clock and disk
cache; a chips row under the feed title switches between them and + opens
the editor (people are added through the same search the Send form uses).

A word in the header search is a topic too: 'Posts on this topic' opens a
session feed for it, as does a #tag in any post body — Save feed keeps it.
Topic-only feeds read the big public relays as well as ours, since a hashtag
has no author whose outbox we could follow.

The zap icon used to go amber once anyone had zapped a post; now only when
you have, like the heart.

tools/feed-custom-test.js drives the editor, the relay filter, a tagged post
landing, the #tag link, reload persistence and delete.

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
