<feed xmlns='http://www.w3.org/2005/Atom'>
<title>coinosv3.git/tools/comments-test.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-07T19:02:51Z</updated>
<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>NIP-22 comments (kind 1111): shown in threads, sent when replying to a poll, article or comment, and in notifications.</title>
<updated>2026-09-29T21:09:43Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-09-29T21:09:43Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=a3a1b4f44fe45f190c2c698fcd262788bdc93f40'/>
<id>urn:sha1:a3a1b4f44fe45f190c2c698fcd262788bdc93f40</id>
<content type='text'>
Kind 1111 is the reply format for everything that isn't a kind 1 note:
uppercase E/A + K + P name the root, lowercase e/a + k + p the parent.
Threads now also ask for comments naming the root (#E, and #A for an
addressable root like an article), place each under its parent, and
draw them as posts. A reply to anything but a kind 1 note goes out as a
1111 with the root's scope and the parent's tags (copied from the
comment when the root isn't loaded); replies to kind 1 notes stay kind 1.
Comments that answer you show in Notifications.

comments-test (a real article with 4 comments; events caught at the
socket, nothing published): comments listed, reply to the article and to
a comment tagged per NIP-22.

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