<feed xmlns='http://www.w3.org/2005/Atom'>
<title>coinosv3.git/src/features/hats.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-15T00:56:09Z</updated>
<entry>
<title>A knight's helm, for one small knight.</title>
<updated>2026-09-15T00:56:09Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-09-15T00:56:09Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=0cb8524ceac9d3ed70dbc9ce9a169b64ddfe55d1'/>
<id>urn:sha1:0cb8524ceac9d3ed70dbc9ce9a169b64ddfe55d1</id>
<content type='text'>
A gifted hat that covers the whole face — its own square drawing over
the avatar rather than perched on it: steel great helm, cross slit,
breathing holes, a red plume. Never sold; the registrar's gift endpoint
knows it beside the beta hard hat.

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01QYJfZ4A1TDCEY4Foq3CApR
</content>
</entry>
<entry>
<title>Hats no longer pop in a beat after page load. The hats feature is a deferred chunk, so every boot painted bare heads until it arrived — but the core bundle can't carry the hat art. Instead, wrapAvatar now leaves a STAMP per head in localStorage (art + percent geometry, size-independent, capped at 40, cleared when a head goes bare so removals can't ghost), and the core avatar factory replays stamps until hatsReady answers — from then on a null from wrapAvatar genuinely means bare. Verified headless: a stamped hat is on the header avatar 15ms after DOM-ready, and once the chunk lands with a bare-head answer the stamp is cleared with no double-wrap</title>
<updated>2026-09-05T01:37:53Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-09-05T01:37:53Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=4431198900b2d1a5cfb73bd02ddfd1e377d9acb9'/>
<id>urn:sha1:4431198900b2d1a5cfb73bd02ddfd1e377d9acb9</id>
<content type='text'>
Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01MGzU12QrAA4G6BYGzGVdXz
</content>
</entry>
<entry>
<title>Bills meet their bands: the hard hat's and trucker cap's side bills get flat undersides that land exactly on the band's bottom edge instead of a curved lip that dipped past it and left a visible seam at the junction</title>
<updated>2026-08-31T16:21:44Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-08-31T16:21:44Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=29b0dddad8edde818d0257f39988c9e82f387290'/>
<id>urn:sha1:29b0dddad8edde818d0257f39988c9e82f387290</id>
<content type='text'>
Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01MrkLsNScXe9b6BviUSdmMr
</content>
</entry>
<entry>
<title>The hard hat goes safety-orange and gets a trucker-style bill off the right side, band and bill in the darker shade</title>
<updated>2026-08-31T16:15:46Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-08-31T16:15:46Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=c1bc574d69573269080cbd9fb4fc453ff9433e6c'/>
<id>urn:sha1:c1bc574d69573269080cbd9fb4fc453ff9433e6c</id>
<content type='text'>
Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01MrkLsNScXe9b6BviUSdmMr
</content>
</entry>
<entry>
<title>A hard hat for the crew that builds this with us: an operator-giftable construction hat joins the catalog (never listed for sale — like the crown it appears only in a rack that holds it), the registrar grows POST /hats/grant behind the admin token (hex or npub, crown excluded), and a gifted hat settles into the rack instead of knocking a paid hat off a bare-headed recipient wears it at once</title>
<updated>2026-08-31T16:03:37Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-08-31T16:03:37Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=790c6fac78d678832634cedf8c0bd67c4d19e89b'/>
<id>urn:sha1:790c6fac78d678832634cedf8c0bd67c4d19e89b</id>
<content type='text'>
Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01MrkLsNScXe9b6BviUSdmMr
</content>
</entry>
<entry>
<title>The wizard hat stops demanding 42k sats of phantom headroom: the shop's affordability check drops from 2% to max(10, 0.2%) routing allowance — hat invoices live on the ASP's own node where the quoted route fee is a couple of sats, and a wallet holding 2,133,786 was told it couldn't afford a 2,100,000 hat</title>
<updated>2026-08-31T15:29:49Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-08-31T15:29:49Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=03d471d5abd4447d96daca869de9d8d4fcf3283f'/>
<id>urn:sha1:03d471d5abd4447d96daca869de9d8d4fcf3283f</id>
<content type='text'>
Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01MrkLsNScXe9b6BviUSdmMr
</content>
</entry>
<entry>
<title>A first-tap Safari hiccup stops costing a hat sale: the shop's registrar posts retry once on network-shaped failures (Safari's bare 'Load failed' included — fresh NIP-98 header per attempt, /hats/claim already idempotent, a real refusal never re-posts), and the shop listing quietly retries once before declaring itself offline</title>
<updated>2026-08-31T06:10:28Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-08-31T06:10:28Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=f517cb23fa37b15922c8ad333952df09847ce8b6'/>
<id>urn:sha1:f517cb23fa37b15922c8ad333952df09847ce8b6</id>
<content type='text'>
Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01MrkLsNScXe9b6BviUSdmMr
</content>
</entry>
<entry>
<title>A hat swapped on one device reaches the others in minutes, not by dinnertime: the worn-hat cache revalidates after two minutes instead of six hours (still painted from cache instantly — the refresh rides behind), and learning a hat came OFF now repaints too, where the old check only redrew for fresh hats</title>
<updated>2026-08-31T05:21:39Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-08-31T05:21:39Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=08138f7c4eddf2a94a49350e31c7cffd97fe3120'/>
<id>urn:sha1:08138f7c4eddf2a94a49350e31c7cffd97fe3120</id>
<content type='text'>
Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01MrkLsNScXe9b6BviUSdmMr
</content>
</entry>
<entry>
<title>Hat fitting, final millimetres: everything settles three pixels lower and one further left</title>
<updated>2026-08-31T05:17:20Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-08-31T05:17:20Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=ee1c8bb8ae6fa44f5d09949ca30edc039a5a39a5'/>
<id>urn:sha1:ee1c8bb8ae6fa44f5d09949ca30edc039a5a39a5</id>
<content type='text'>
Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01MrkLsNScXe9b6BviUSdmMr
</content>
</entry>
<entry>
<title>Hat fitting, round two: the six whose art carries less bottom padding come down ten points (crown and wizard stay perched), and the whole rack rides five percent left of center — dead-center read as drifting off the head</title>
<updated>2026-08-31T05:14:11Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-08-31T05:14:11Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=a8a5ad829b800f50a5b69f61ef65e5c714e27edd'/>
<id>urn:sha1:a8a5ad829b800f50a5b69f61ef65e5c714e27edd</id>
<content type='text'>
Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01MrkLsNScXe9b6BviUSdmMr
</content>
</entry>
</feed>
