<feed xmlns='http://www.w3.org/2005/Atom'>
<title>coinosv3.git/tools/ark, 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-08T20:41:24Z</updated>
<entry>
<title>A renewal refused for 'insufficient refresh fee' re-reads the server's fee schedule and re-prices instead of resubmitting the same underpaying set on every sync; if the new fee leaves under 330 sats (or the price didn't change) it fails and frees the coins. Backstop registration re-reads the schedule on the same refusal</title>
<updated>2026-10-08T20:41:24Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-10-08T20:41:24Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=fcd023fb4b33404eb62afceba0c0232f8b25f200'/>
<id>urn:sha1:fcd023fb4b33404eb62afceba0c0232f8b25f200</id>
<content type='text'>
Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>A finished renewal adopted twice no longer shows 'Renewal in progress' forever: once its done action is pruned, a re-read round breadcrumb adopted it again as a rescue at step 'issued', whose spent inputs had lost their bytes, so every sync threw. A round counts as claimed when its 'Renewed' movement or its fresh coins are already in the wallet; the breadcrumb and rescueParticipation skip it, and a stuck issued action retires without a row</title>
<updated>2026-10-08T20:00:41Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-10-08T20:00:41Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=b0c6e8b7d0340f5ef64ddeef0f7b0c0531cb87f1'/>
<id>urn:sha1:b0c6e8b7d0340f5ef64ddeef0f7b0c0531cb87f1</id>
<content type='text'>
Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>History: a Lightning payment still settling (a zap, mostly) shows at once as a pending Sent row with the recipient's face, and gives way to its completed row</title>
<updated>2026-10-07T19:52:14Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-10-07T19:52:14Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=6faf6b6fe49b8e51a38e0106c858341faf2145ef'/>
<id>urn:sha1:6faf6b6fe49b8e51a38e0106c858341faf2145ef</id>
<content type='text'>
One-tap zaps now record who they went to, so their rows carry a face too.

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>ark ui-test and comments-test: no more timing races</title>
<updated>2026-10-07T16:59:28Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-10-07T16:59:28Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=6f3c5ac7f2accc2349c7bef9e5b06e9990fb194c'/>
<id>urn:sha1:6f3c5ac7f2accc2349c7bef9e5b06e9990fb194c</id>
<content type='text'>
ark ui-test: wait for the selected balance card to stick before opening
Receive (the carousel lands on a card's history, and a glide could settle
back on Savings), wait for the first mailbox read before paying, paste
addresses whole (typed a key at a time, a re-render mid-typing broke the
checksum), and poll for alice's balance and the history rows. 8/8 runs.
comments-test: the article and comments it fetched are handed to the app
on every relay socket that asks, so it no longer depends on the app
reaching the same public relays.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>ln-e2e-test: wait for both CLN nodes to reach the chain tip before the hold receive</title>
<updated>2026-10-07T16:12:43Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-10-07T16:12:43Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=df87bd84560fec4b085b6f0f4785b61502ffd480'/>
<id>urn:sha1:df87bd84560fec4b085b6f0f4785b61502ffd480</id>
<content type='text'>
Run right after tests that mine, cln-ark could trail by a block or two and
the receive failed with final_incorrect_cltv_expiry.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>ark ui-test: port the browser e2e to the current app</title>
<updated>2026-10-07T16:08:57Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-10-07T16:08:57Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=014cf755cc330529c5fa1dedb321b27750b150b1'/>
<id>urn:sha1:014cf755cc330529c5fa1dedb321b27750b150b1</id>
<content type='text'>
The old test spawned ~/halwallet's dev server and drove its long-gone UI
(receive-mode select, Settings 'Refresh / consolidate'). It now builds this
repo's app bundle and drives it against the regtest stack: set up Spending,
receive over Ark from alice, send back from the Send form, fund Savings
on-chain and move it into Spending (board), reload. Only the page and the
local backends are reachable. aliceReady uses 'bark maintain' so actions a
killed run left half-done get resumed instead of holding coins locked.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>expired-dust-test: skip unless captaind runs a short vtxo lifetime</title>
<updated>2026-10-07T15:21:48Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-10-07T15:21:48Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=66113070c59cfabf7b418828d174f70c55a21dd6'/>
<id>urn:sha1:66113070c59cfabf7b418828d174f70c55a21dd6</id>
<content type='text'>
It needs vtxo_lifetime &lt;= 60 so it can mine past expiry; against the normal
4320-block server it would age the whole shared chain. Also import the
manager relative to the repo instead of the main checkout's absolute path.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>ark tests: shared aliceReady() keeps the bark funding wallet usable</title>
<updated>2026-10-07T15:21:47Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-10-07T15:21:47Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=90d0396819ddfbabb8b7f45e8fc3ac0992a6b014'/>
<id>urn:sha1:90d0396819ddfbabb8b7f45e8fc3ac0992a6b014</id>
<content type='text'>
scheduled-refresh-test mines a whole vtxo lifetime, which expires alice's
coins; every test run after it funded nothing (spendableSat 0) or was handed
an expired coin (receive-test). The helper refreshes expired coins and boards
more when alice runs low, and the funding tests call it before paying.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>ark board/refresh tests: current regtest chain and server rules</title>
<updated>2026-10-07T15:21:41Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-10-07T15:21:41Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=bba8280a241ce86b0f372818d7aca85073d8e53a'/>
<id>urn:sha1:bba8280a241ce86b0f372818d7aca85073d8e53a</id>
<content type='text'>
- mine/fund through the bc container (the standalone :18543 node was retired
  in the July consolidation)
- board-test hands the server the funding tx (require_board_funding_tx) and
  waits for esplora to see the board confirmed: bark silently drops a received
  vtxo whose board tx it can't find yet
- refresh-test rounds the ppm fee up like the server (and the manager) do

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