<feed xmlns='http://www.w3.org/2005/Atom'>
<title>coinosv3.git/tools/feature-registry-check.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-09-24T05:51:58Z</updated>
<entry>
<title>Feed: threads cached locally, posts never inserted under the reader, rows keep their first look.</title>
<updated>2026-09-24T05:51:58Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-09-24T05:51:58Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=75679fdd5d24d36e3c54316e88ccefcf954afc82'/>
<id>urn:sha1:75679fdd5d24d36e3c54316e88ccefcf954afc82</id>
<content type='text'>
Work by Codex, wrapped up and verified here.

Threads: a viewed conversation is persisted (thread-cache.js, up to 12
threads / 160 events), so a refresh or a cached note link shows the root
and ancestors at once instead of the selected reply and a spinner; relays
are re-asked in the background and an empty answer keeps the cache.

Feed window (feed-window.js): arrivals are merged without inserting
between visible rows — a gap fill under the reader's eyes waits until
that part of the feed is offscreen, prepends anchor the reading position,
the notice counts what went in above, and only its tap goes to the top.
Older pages are prepared a few screens ahead; a page's pictures and faces
are decoded before it is shown.

Rows keep the presentation they were admitted with (feedPaint): background
profile and quote refreshes no longer rewrite text or swap faces mid-read;
media dimensions are known before paint. Thumbnails queue instead of being
dropped past the first three.

Tests: thread-cache, feed-window, feed-stability; feed-live updated for
the new arrival rules (the notice counts up while you read).

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>The app arrives in movements: real ESM chunks split the bundle (entry 333KB, shared chunks alongside, 61KB of gifts/NWC/hats deferred past first paint into slots that keep their hook seniority), the lazy scripts wear IIFE coats so their names can't collide with the page's — which is what silently broke the remote-signer button — nip98 moves out of the login module so minimal builds stop hauling backup relays, and the smoke test learns the front door's new steps while the regtest stack rises from its IBD nap</title>
<updated>2026-08-26T21:16:41Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-08-26T21:16:41Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=e18a74b936e43aeb7f74df433d88f294f9bcc877'/>
<id>urn:sha1:e18a74b936e43aeb7f74df433d88f294f9bcc877</id>
<content type='text'>
Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
</content>
</entry>
<entry>
<title>Actually ship the NWC feature, and guard against the drift that hid it</title>
<updated>2026-08-01T17:44:20Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-08-01T17:44:20Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=d8d2746f16d1bdcb71e1409a90871b65117d026c'/>
<id>urn:sha1:d8d2746f16d1bdcb71e1409a90871b65117d026c</id>
<content type='text'>
build.js swaps src/features/index.js for a generated module listing only the
features in its own ALL_FEATURES registry, so registering nwc in index.js
alone was not enough: its i18n strings shipped (they live elsewhere) but its
code never entered the bundle, and the settings card silently never rendered.

- add nwc to build.js ALL_FEATURES, after ark since it drives ark's headless
  pay/balance seam
- tools/feature-registry-check.js asserts the two lists agree on membership
  AND on construction order, since hook precedence depends on the order

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