<feed xmlns='http://www.w3.org/2005/Atom'>
<title>coinos-ui.git/src/lib/socket.ts, branch master</title>
<subtitle>coinos ui — legacy coinos.io web app (SvelteKit)</subtitle>
<id>https://git.coinos.io/coinos-ui.git/atom?h=master</id>
<link rel='self' href='https://git.coinos.io/coinos-ui.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/'/>
<updated>2026-09-22T18:27:15Z</updated>
<entry>
<title>invoice: a reusable bolt12 offer has no terminal paid state</title>
<updated>2026-09-22T18:27:15Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-09-22T18:23:19Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=802eea628fb77fed305de555995cf323174b0394'/>
<id>urn:sha1:802eea628fb77fed305de555995cf323174b0394</id>
<content type='text'>
A bolt12 offer is a standing payment code. CLN derives the same offer_id
from the same (amount, description), so re-creating one hands back the
original record, whose `received` has accumulated over the offer's whole
lifetime. The invoice layout read that as "this invoice was paid" and
redirected to the success screen, so reopening a long-lived offer never
showed the QR and left no way to copy the lno.

Treat a payment as celebratory only when it arrives while the page is
open: the socket handler now passes the amount of that payment as
`?paid=&lt;amount&gt;`, and the layout uses it in place of the lifetime total
for reusable offers. Single-use invoices keep the existing logic, so a
partly-paid invoice still stays on the QR rather than celebrating early.

The success screen showed lifetime `received` for the same reason, which
misreported a single payment to a long-lived offer; it now renders the
amount the socket reported, which is already net of tip.

Co-Authored-By: Claude Opus 5 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>prevent redirect while navigating</title>
<updated>2025-09-09T19:42:46Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2025-09-09T19:42:46Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=4cb7c5aaeb077cbab9d0ba4e536ca999f2421a0d'/>
<id>urn:sha1:4cb7c5aaeb077cbab9d0ba4e536ca999f2421a0d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>load more contacts</title>
<updated>2024-11-30T07:32:08Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2024-11-30T07:32:08Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=42cc753e86a3b7c5020206dda68bbb81bf15da2b'/>
<id>urn:sha1:42cc753e86a3b7c5020206dda68bbb81bf15da2b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>bip21 and socket fixes</title>
<updated>2024-11-26T21:20:53Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2024-11-26T21:08:08Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=9b3e117eafbba224b86dd7f8b3c56a0370f72d5b'/>
<id>urn:sha1:9b3e117eafbba224b86dd7f8b3c56a0370f72d5b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>payment amount helpers</title>
<updated>2024-11-15T00:09:51Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2024-11-14T21:32:52Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=0f35462ebdde3701e8fe927b3debace9abf79305'/>
<id>urn:sha1:0f35462ebdde3701e8fe927b3debace9abf79305</id>
<content type='text'>
</content>
</entry>
<entry>
<title>get push subscription</title>
<updated>2024-10-22T07:04:17Z</updated>
<author>
<name>Adam Soltys</name>
<email>asoltys@gmail.com</email>
</author>
<published>2024-10-22T07:04:17Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=fe09eae6599c93d8d5bf0a398d11897508e2f1a4'/>
<id>urn:sha1:fe09eae6599c93d8d5bf0a398d11897508e2f1a4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>biome format</title>
<updated>2024-10-18T16:09:14Z</updated>
<author>
<name>Adam Soltys</name>
<email>asoltys@gmail.com</email>
</author>
<published>2024-10-18T16:08:07Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=002cd9134d2e23bec34f838f6d6fefba41f2d530'/>
<id>urn:sha1:002cd9134d2e23bec34f838f6d6fefba41f2d530</id>
<content type='text'>
</content>
</entry>
<entry>
<title>socket improvements</title>
<updated>2024-10-12T05:56:28Z</updated>
<author>
<name>Adam Soltys</name>
<email>asoltys@gmail.com</email>
</author>
<published>2024-10-12T05:56:28Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=b8aa7709e8a43017eb9c705033ea8702364ff6f7'/>
<id>urn:sha1:b8aa7709e8a43017eb9c705033ea8702364ff6f7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>typescript</title>
<updated>2024-08-31T03:04:13Z</updated>
<author>
<name>Adam Soltys</name>
<email>asoltys@gmail.com</email>
</author>
<published>2024-08-31T03:04:13Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=20337319212896c484ac0f8d3dfbac3b8d26f089'/>
<id>urn:sha1:20337319212896c484ac0f8d3dfbac3b8d26f089</id>
<content type='text'>
</content>
</entry>
<entry>
<title>typescript</title>
<updated>2024-08-31T01:52:00Z</updated>
<author>
<name>Adam Soltys</name>
<email>asoltys@gmail.com</email>
</author>
<published>2024-08-31T01:52:00Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=8346eb9e052d10abf4fb65b66838aaab47152e2a'/>
<id>urn:sha1:8346eb9e052d10abf4fb65b66838aaab47152e2a</id>
<content type='text'>
</content>
</entry>
</feed>
