<feed xmlns='http://www.w3.org/2005/Atom'>
<title>coinos-server.git/lib/logging.ts, branch master</title>
<subtitle>coinos server — legacy coinos.io backend (Lightning, on-chain, Liquid)</subtitle>
<id>https://git.coinos.io/coinos-server.git/atom?h=master</id>
<link rel='self' href='https://git.coinos.io/coinos-server.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-server.git/'/>
<updated>2026-09-29T15:37:47Z</updated>
<entry>
<title>logging: throttle log lines that clients can trigger at will</title>
<updated>2026-09-29T15:37:47Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-09-29T15:37:39Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-server.git/commit/?id=4900ecb19ab9c6d279c8771b834fcb29e526a1e0'/>
<id>urn:sha1:4900ecb19ab9c6d279c8771b834fcb29e526a1e0</id>
<content type='text'>
Evicted-JWT replays, blocked sends from frozen or limited accounts and
failed payment retries each logged one line per request, so a looping client
could flood the log, and an evicted token replayed across a proxy pool made
atk-autoban.sh block every IP it saw. Add quiet()/suppressed() in
lib/logging.ts: the first occurrence per key logs as before, repeats within
the window are counted and reported on the next line that gets through. The
evicted-auth summary line is worded so the auto-banner ignores it.

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>mint/lightning: refuse caller-supplied invoices, tiered fees, log hygiene</title>
<updated>2026-07-30T17:38:43Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-07-30T17:28:23Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-server.git/commit/?id=fd1617ea66e01557e71debc7e45ca08cfe01bf70'/>
<id>urn:sha1:fd1617ea66e01557e71debc7e45ca08cfe01bf70</id>
<content type='text'>
- invoices: reject caller-supplied bolt11/bolt12; the server always mints its
  own. Closes the invoice-registration path behind the shared-node credit and
  payment-hijack vectors.
- lightning: skip mint-owned invoices (lbl* label) in the paid-invoice listener.
- payments: lightning free-tier fee credit, withheld for flagged high-throughput
  (ln:nofree) accounts which pay an elevated rate; the failed-send reversal
  restores credit at the same rate. freezeCheck made crash-resilient. Lightning
  and bolt12 sends stay pending until the preimage settles.
- payments (route): validate payment-request / invoice input types.
- logging: collapse repeated xpay failure lines into one.

Co-Authored-By: Claude Opus 4.8 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>biome lint</title>
<updated>2024-10-31T16:34:42Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2024-10-31T16:29:04Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-server.git/commit/?id=aa4cd39c943b67169def224e224bd07b815b70ec'/>
<id>urn:sha1:aa4cd39c943b67169def224e224bd07b815b70ec</id>
<content type='text'>
</content>
</entry>
<entry>
<title>typescript</title>
<updated>2024-08-27T04:17:43Z</updated>
<author>
<name>Adam Soltys</name>
<email>asoltys@gmail.com</email>
</author>
<published>2024-08-27T04:17:43Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-server.git/commit/?id=fe62cadd6fb4a7e49f7d59401fc74ae0411e32a7'/>
<id>urn:sha1:fe62cadd6fb4a7e49f7d59401fc74ae0411e32a7</id>
<content type='text'>
</content>
</entry>
</feed>
