<feed xmlns='http://www.w3.org/2005/Atom'>
<title>coinosv3.git/build.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-09T15:36:26Z</updated>
<entry>
<title>Theme colour at boot: the script that picks light or dark ran before &lt;meta name="theme-color"&gt; existed, so the bar colour stayed #15171a in light mode (a dark status bar over a light page, and the Android bars of the installed web app). It now runs after the PWA head, and light pages get #eef0f3</title>
<updated>2026-10-09T15:36:26Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-10-09T15:36:26Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=215d1050d7ff383afc28668fb307512110c38511'/>
<id>urn:sha1:215d1050d7ff383afc28668fb307512110c38511</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>Build switches answer only to their COINOS_* names: the HAL_* fallback is gone from build.js and the README (the cs deploy hook now passes COINOS_TARGET; the F-Droid 1.9 recipe keeps HAL_NO_SW because that tag's own build.js is what builds it, and the recipe says so for the next tag)</title>
<updated>2026-10-09T08:29:00Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-10-09T08:29:00Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=7031e547714be960d70f18359523d762f27292e1'/>
<id>urn:sha1:7031e547714be960d70f18359523d762f27292e1</id>
<content type='text'>
Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>PWA maskable icon is the inner mark on white, like the native app's adaptive icon: it was a copy of the full logo, so Chrome's home-screen Coinos showed an extra outer ring</title>
<updated>2026-10-09T05:26:44Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-10-09T05:26:44Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=7cea4ccb253d9802d92ee93881ed545e38391870'/>
<id>urn:sha1:7cea4ccb253d9802d92ee93881ed545e38391870</id>
<content type='text'>
Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Setup wizard: a cover behind the avatar — twelve nature covers (self-hosted, Unsplash) cycled with arrows or a swipe, or upload your own; untouched, each pubkey gets its own default, published as the kind-0 banner beside the punk</title>
<updated>2026-10-07T20:25:49Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-10-07T20:25:49Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=39ce1ef4c04bf010c75b3431be69174d6ef2c80a'/>
<id>urn:sha1:39ce1ef4c04bf010c75b3431be69174d6ef2c80a</id>
<content type='text'>
Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>README rewritten for today's coinos v3; build switches are COINOS_* (HAL_* still accepted); silent-payment leftovers removed</title>
<updated>2026-10-06T05:35:56Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-10-06T05:35:56Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=f571e46937d423d9ba44154a92aeb4136466daaa'/>
<id>urn:sha1:f571e46937d423d9ba44154a92aeb4136466daaa</id>
<content type='text'>
Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01YRC6aKhwAud231ot9FPmhi
</content>
</entry>
<entry>
<title>Shared note links open on the post, with names and faces</title>
<updated>2026-10-02T05:48:11Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-10-02T05:48:11Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=23f18ff13e0a8c612d04727de2ccfadf2d13ff7c'/>
<id>urn:sha1:23f18ff13e0a8c612d04727de2ccfadf2d13ff7c</id>
<content type='text'>
The server renders /nevent1 and /note1 pages with the thread inlined
(post, root, replies, kind 0s) and Open Graph tags; the client seeds its
thread cache from it and opens the thread on the first paint. Without
it, a pending frame holds the screen instead of the front door. Profile
lookups ask our relays and the profile indexes at once, streamed,
instead of one after the other behind five-second waits. A thread
opened straight from a link has no Back button.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>The standalone wallet opened from a disk shows its avatars, font and languages.</title>
<updated>2026-10-01T23:34:55Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-10-01T23:34:55Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=66d41d1aa1f5c60cd63b1691ba6bf70e88cf78fa'/>
<id>urn:sha1:66d41d1aa1f5c60cd63b1691ba6bf70e88cf78fa</id>
<content type='text'>
With no files beside it, relative punks/, locales/, nip46.js and jsqr.js
looked on the disk. From file:// they now come from v3.coinos.io (images
and scripts need no CORS; /locales/ now sends Access-Control-Allow-Origin
on the server), and standalone.html carries Public Sans inline.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01VP5Ljqk7EYcm5QQAbzDwog
</content>
</entry>
<entry>
<title>Serve a shared snapshot for the public feed</title>
<updated>2026-10-01T13:55:14Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-10-01T13:55:14Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=5d441ebbce6066c3636168ec5332ae9c2bdb8607'/>
<id>urn:sha1:5d441ebbce6066c3636168ec5332ae9c2bdb8607</id>
<content type='text'>
Build the default Popular feed once on the server and let browsers verify and paint its signed events before slow media finishes. Keep custom relays, pagination, filtering, and relay fallback on their existing paths.\n\nAdd stale-while-refresh persistence, service-worker bypass, development integration, and unit/browser coverage.
</content>
</entry>
<entry>
<title>Videos are shrunk on the phone before upload; nostr.build is the first media host.</title>
<updated>2026-09-30T17:10:10Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-09-30T17:10:10Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=505cd84813a80e0a69b2cc95aa93c68cf2856cb2'/>
<id>urn:sha1:505cd84813a80e0a69b2cc95aa93c68cf2856cb2</id>
<content type='text'>
No public Blossom host transcodes (nostr.build's and primal's BUD-05 /media
return the same bitrate), so a 15-20 Mbps phone clip stalled on playback.
src/video-compress.js re-encodes on the device with WebCodecs via
Mediabunny (a lazily loaded chunk, left out of the SW precache and the
standalone file): H.264, short edge 720, ~2.5 Mbps, moov first, audio
passed through, rotation baked in. Anything short of a clear win uploads
the original. A toast counts the shrinking down.

Media hosts: blossom.nostr.build first, nostr.download second (it was
unreachable for hours); a HEAD probe skips a host that doesn't answer
within 5 s instead of waiting out the whole upload timeout.

video-compress-test: 1080p 20 Mbps 5 s (landscape and rotated portrait) →
1.6 MB H.264 720p 2.49 Mbps with audio, moov first, in 2-3 s.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01Du1qT1wbkYwYK6zkGH79Rp
</content>
</entry>
<entry>
<title>The Android app's system bars follow the system theme, and the page's theme colour follows the app's.</title>
<updated>2026-09-28T06:58:44Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-09-28T06:58:44Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=318fef4880373fe5c12c366cd8b1c322771714e6'/>
<id>urn:sha1:318fef4880373fe5c12c366cd8b1c322771714e6</id>
<content type='text'>
One dark colour for both bars gave white navigation icons over a light page
under gesture navigation. The wrapper (1.9, versionCode 10) now uses the
page background in light mode and the dark theme colour in dark mode, for
the status bar and the navigation bar alike. The page updates its
theme-color meta when its own theme is applied, so a PWA's status bar and
the wrapper's follow the same switch.

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