<feed xmlns='http://www.w3.org/2005/Atom'>
<title>coinos-server.git/meltguard.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-05T02:04:11Z</updated>
<entry>
<title>meltguard: guard /v1/xpay and parse form-encoded melt bodies</title>
<updated>2026-09-05T02:04:11Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-09-05T02:04:08Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-server.git/commit/?id=08c9eca46469af21aeb209066401aad8808920d7'/>
<id>urn:sha1:08c9eca46469af21aeb209066401aad8808920d7</id>
<content type='text'>
nutshell &gt;= 0.20.3.1 melts via POST /v1/xpay (form field invstring),
while older CLNRest wallets post /v1/pay form-encoded under `invoice`
or `bolt11`. The guard only parsed JSON `bolt11`, so form bodies never
yielded an amount and were rejected, and an xpay backend would have
bypassed the caps entirely. Accept both endpoints and all three field
names, forward as form on the same endpoint preserving fee params.

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_014uxZLvYS4gH9UqUX2Ey8TV
</content>
</entry>
<entry>
<title>mint-recovery: add meltguard + mintdemux proxies; ignore local *.bak</title>
<updated>2026-07-30T17:38:43Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-07-30T17:37:53Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-server.git/commit/?id=1d48335f47bbb673b89b42a9ef2984eaae7b02d2'/>
<id>urn:sha1:1d48335f47bbb673b89b42a9ef2984eaae7b02d2</id>
<content type='text'>
- meltguard: out-of-band CLNRest spend limiter (per-melt cap + cumulative
  hard-freeze) that sits between the panic-mode mint and the node
- mintdemux: fronts the mint hostname, routing between the retired and current
  mint instances after the hostname swap
- gitignore *.bak / *.bak-* so local backups (some hold secrets) never commit

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