docs: curate CHANGELOG entry for v1.7.119-alpha

Written ahead of create-release.sh, which validates a curated
CHANGELOG.md section already exists rather than generating one.
Leads with FED-08 (private-channel invoice route hints) and FED-09
(doctor/Tor setgid restart-loop fix), covers phase-02 sessionStorage
security hardening and the PWA auto-update decision, and records the
5x lifecycle gate omission (node .228 unreachable) as a known gap
rather than a footnote.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
archipelago 2026-07-31 12:13:51 -04:00
parent 98d6534e13
commit 09ab5f6b11

View File

@ -1,5 +1,19 @@
# Changelog
## v1.7.119-alpha (2026-07-31)
- **Wallet payments now work on nodes whose channels are private/unannounced.** Every invoice-creation call site — the wallet's own Receive flow, and the seller-side paid-content/peer-files flow — only ever sent LND the amount and memo, so LND defaulted `private` to false and returned invoices with no route hints. Any node whose only usable channel is private or unannounced (the common shape for a channel someone opened *to* you) was silently unpayable through the wallet, and unpayable through paid file/content sales too. Both call sites now set LND's `private` flag correctly; this was broken in the field and is the main reason for this release.
- **Tor and the mesh's Tor fallback are reliable again.** The node's background "doctor" health-checker was fighting Tor over the permission bits on its own hidden-service directory: it compared the directory's mode against the literal string `"700"`, but Tor's own setgid hidden-service mode is `2700` — a value the doctor's check never recognized as correct. Every ~5 minutes it "corrected" the mode back to 700 and restarted Tor to apply it, and Tor immediately reasserted 2700 — a permanent restart loop that meant Tor could never hold onto its consensus/HSDir cache long enough to be useful, breaking the mesh's Tor fallback path entirely. The check now compares only the owner/group/other bits that actually matter (both 700 and 2700 pass; genuinely wrong modes like 750 or 2755 are still corrected and restart Tor), plus a 30-minute restart backoff so no future condition can reproduce the storm.
- Wallet balances and your node's own FIPS identity key (npub) are no longer written to the browser's sessionStorage — caught by an audit of the page-caching work below. Every cache call site in the app now makes an explicit, reviewed decision about whether its data is allowed to persist across a reload, and a one-time migration purges any legacy, unaudited snapshot left behind by an older build.
- Server, Home, Mesh, Chat/AI chat, and the secondary screens (app details, marketplace, cloud, federation, monitoring, router/OpenWrt) now load instantly from cache when you revisit them and refresh quietly in the background, instead of blanking and re-fetching everything on every tab switch — this closes out the page-performance work started back in v1.7.116/117.
- App updates (including this one) now apply automatically in the background instead of waiting on a tap-to-update prompt, matching how kiosk/TV installs already behaved — the reload still waits for any in-progress splash/dashboard animation to finish first, so it won't land mid-motion. This was a direct, explicit decision made with the mid-payment-reload risk spelled out in advance; reverting to a confirmation prompt for beta is a one-line change if wanted later.
### Known gap — production lifecycle gate not run for this release
`tests/lifecycle/run-gate.sh` — the 5x install/UI/stop/start/restart/reinstall/reboot-survive/archipelago-restart-survive/uninstall gate that CLAUDE.md defines as this project's condition for a release tag — was **NOT run** for v1.7.119-alpha. Its target node (.228) was unreachable at release time, and running it here would have required rebooting the build machine, killing live dev servers and another active work session on the same box. This was a deliberate call to ship the two field-breaking fixes above rather than block on an unreachable node. **Run the full 5x lifecycle gate on .228 as soon as it's reachable again, and treat this release as pending that verification until it's done.**
(This release's own automated gates — `tests/release/run.sh`, strict catalog-drift check, the full `cargo test` suite, a mount-level ISO smoke test, and a headless QEMU boot test — all still ran and are not what's being skipped here.)
## v1.7.118-alpha (2026-07-29)
- Fixes mesh radios dropping off on nodes that took the v1.7.117 update. Updates only ever replaced the main program, never the packaged radio helpers — so updated nodes were left running an older radio daemon that didn't understand a new option and quietly gave up, showing "device not connected" with a Connect button that did nothing. The node now checks what its radio daemon supports before using new options, and updates finally carry the radio helpers themselves, so every node gets current radio support with the update instead of only from a fresh install.