fix(release): correct v1.7.119-alpha changelog/manifest lifecycle-gate note

create-release-manifest.sh's changelog extraction pulls every non-blank
line between the version header and the next "## ", not just "- "
bullets — so the previous commit's "### Known gap" markdown heading and
its paragraph leaked into releases/manifest.json (and, via
sync-whats-new.py, the Settings "What's New" modal) as a malformed,
truncated entry (the closing clarification sentence was cut by the
extractor's 10-line cap).

Rewritten as a single "- " bullet, matching every other CHANGELOG entry,
so it renders cleanly and completely in both the OTA manifest and the
in-app modal instead of showing raw "### " syntax to node operators.
Also folds in core/Cargo.lock's version bump, which create-release.sh's
own commit step omits from its `git add` list.

Same binary/frontend artifacts as the prior commit (identical sha256/
size in the regenerated manifest) — only the changelog text changed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
archipelago 2026-07-31 13:50:34 -04:00
parent baaa4e8ea1
commit 258a91781c
5 changed files with 5 additions and 11 deletions

View File

@ -7,12 +7,7 @@
- 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.)
- Known gap, disclosed rather than buried: the project's 5x production lifecycle gate (install/UI/stop/start/restart/reinstall/reboot-survive/archipelago-restart-survive/uninstall, run on a real node — CLAUDE.md's own definition of done before a release tag) was NOT run for this release, because its target node was unreachable and running it here would have required rebooting a shared, live build machine out from under other active work. This release's own automated gates (release-gate harness, 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 passed — this is specifically about the separate 5x real-node lifecycle gate, which is still outstanding and should be run as soon as the node is reachable again.
## v1.7.118-alpha (2026-07-29)

2
core/Cargo.lock generated
View File

@ -104,7 +104,7 @@ dependencies = [
[[package]]
name = "archipelago"
version = "1.7.118-alpha"
version = "1.7.119-alpha"
dependencies = [
"anyhow",
"archipelago-container",

View File

@ -374,6 +374,7 @@ init()
<p>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.</p>
<p>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.</p>
<p>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.</p>
<p>Known gap, disclosed rather than buried: the project's 5x production lifecycle gate (install/UI/stop/start/restart/reinstall/reboot-survive/archipelago-restart-survive/uninstall, run on a real node — CLAUDE.md's own definition of done before a release tag) was NOT run for this release, because its target node was unreachable and running it here would have required rebooting a shared, live build machine out from under other active work. This release's own automated gates (release-gate harness, 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 passed this is specifically about the separate 5x real-node lifecycle gate, which is still outstanding and should be run as soon as the node is reachable again.</p>
</div>
</div>
<!-- v1.7.118-alpha -->

View File

@ -7,8 +7,7 @@
"Wallet balances and your node's own FIPS identity key (npub) are no longer written to the browser's sessionStorage \u2014 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 \u2014 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 \u2014 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 \u2014 production lifecycle gate not run for this release",
"tests/lifecycle/run-gate.sh \u2014 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 \u2014 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."
"Known gap, disclosed rather than buried: the project's 5x production lifecycle gate (install/UI/stop/start/restart/reinstall/reboot-survive/archipelago-restart-survive/uninstall, run on a real node \u2014 CLAUDE.md's own definition of done before a release tag) was NOT run for this release, because its target node was unreachable and running it here would have required rebooting a shared, live build machine out from under other active work. This release's own automated gates (release-gate harness, 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 passed \u2014 this is specifically about the separate 5x real-node lifecycle gate, which is still outstanding and should be run as soon as the node is reachable again."
],
"components": [
{

View File

@ -7,8 +7,7 @@
"Wallet balances and your node's own FIPS identity key (npub) are no longer written to the browser's sessionStorage \u2014 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 \u2014 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 \u2014 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 \u2014 production lifecycle gate not run for this release",
"tests/lifecycle/run-gate.sh \u2014 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 \u2014 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."
"Known gap, disclosed rather than buried: the project's 5x production lifecycle gate (install/UI/stop/start/restart/reinstall/reboot-survive/archipelago-restart-survive/uninstall, run on a real node \u2014 CLAUDE.md's own definition of done before a release tag) was NOT run for this release, because its target node was unreachable and running it here would have required rebooting a shared, live build machine out from under other active work. This release's own automated gates (release-gate harness, 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 passed \u2014 this is specifically about the separate 5x real-node lifecycle gate, which is still outstanding and should be run as soon as the node is reachable again."
],
"components": [
{