docs(13): record the per-node CA decision + warm-up fix in the open-tasks file

Corrects the iframe-login root cause on record: trust is per-origin including
port, and a cert interstitial cannot be accepted inside an iframe, so the
SameSite cookie was a downstream symptom rather than the cause.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
archipelago
2026-08-06 14:38:50 -04:00
co-authored by Claude Opus 5
parent 2c302d1479
commit 71a48e6dbd
@@ -35,7 +35,20 @@ request (protocol unverified, zero allowance), E-09 naive-user comprehension stu
operator ("never works ever, breaks all the websites historically"). Remaining: TLS on app
ports (gate or an nginx TLS front) vs. enforcing one dashboard scheme per node. Needs a
decision before code.
- **App health UX** — a container that is up but not yet answering its probe renders as
- **Gated-app iframe login — DECIDED 2026-08-06: per-node CA.** Root cause corrected: the
node's cert was a bare self-signed leaf, so trust is per-ORIGIN (scheme+host+**port**) and
a cert interstitial **cannot be accepted inside an iframe** — an embedded app over HTTPS
could never render. Mixed content blocks the HTTP variant before the SameSite cookie
question even arises. **Shipped `aab74127`**: `scripts/setup-node-ca.sh`, `/ca.crt` on both
nginx schemes, Settings → System install flow. Proven locally (two ports, one CA,
`ssl_verify_result=0`; rejected without it). **STILL OPEN:** app ports serve plain HTTP —
putting the CA-signed leaf on them is what actually closes the bug. UX polish deferred by
the operator ("we'll decide on the actual UX later").
- **App health UX — FIXED `c65ee03a`** (needs deploy to be real). A container that is up but
not answering its probe now reads "<App> is starting…" with its own pulsing icon while the
6×10s auto-retries are in flight; the hard failure copy returns once they are exhausted.
6 regression tests. Original entry kept below for the record.
- **App health UX (original)** — a container that is up but not yet answering its probe renders as
**"Unreachable"** instead of **"Starting…"**. Hit today by both LND and bitcoind (`-28`
warm-up). Fix the status mapping with a grace window.
- **.228 mempool** — NOT down (API serves live data; ElectrumX is rebuilding its index from