diff --git a/release-manifest.json b/release-manifest.json index 7e15c279..08759d8a 100644 --- a/release-manifest.json +++ b/release-manifest.json @@ -1,31 +1,29 @@ { "changelog": [ - "Plugging in a mesh radio no longer traps it in an endless reboot loop. The device detector itself was causing it: every scan pulsed the radio's reset line, the same board was probed twice under two names, and retries came so fast the radio never finished booting before the next reset hit. Detection now gives the board real time to boot, probes it once, backs off properly between attempts, and no longer fights the \"device detected\" popup for the port. Radios that could never connect now come up within a minute of being plugged in.", - "The Lightning channels screen now has All / Active / Pending / Closed tabs. Pending gathers everything in motion (opening, closing, force-closing — each with its own status dot and a link to the closing transaction), and Closed is a real history: how each channel ended, what settled back to you, and the closing transaction for each.", - "Sending bitcoin on-chain now puts you in charge of the network fee: pick Fast, Standard, or Slow (Standard is the default), or set your own target blocks or sats-per-vByte. The confirmation step shows the estimated fee for your chosen speed before any money moves.", - "Type on-chain amounts in whichever unit you think in — a sats/BTC switch on the amount field converts as you type.", - "Back up your seed by scanning it. Every recovery-phrase screen (onboarding, Settings, and the Lightning wallet seed) now has Words and QR code tabs — words always shown first. The QR for your node's recovery phrase uses the SeedQR standard, so hardware wallets like Passport Prime, SeedSigner, and Keystone can import it with a single scan (a plain-text option remains for wallets that read the phrase as text). The Lightning seed's QR is plain text with an honest note: it's an LND-format seed that restores into Lightning wallets like Zeus or Blixt, not into hardware wallets." + "The companion app can reach your node's screen from anywhere again. The recent security hardening locked down the node's mesh interface so tightly that the dashboard itself was blocked — the phone would pair and connect, then sit on a blank screen. The node now explicitly opens its own web interface (and only that) through the mesh firewall on every install and upgrade, so the phone's view of your node works out of the box, on any network, and can't silently break in a future update.", + "The node's web interface also answers on IPv6 everywhere it answers on IPv4 — the mesh runs entirely on IPv6, and one v4-only listener was enough to make a working connection show nothing.", + "Nodes now come back onto the mesh in seconds instead of minutes after their rendezvous anchor restarts: the fast-reconnect tuning proven on the phone this week is now baked into every node's mesh configuration, and it survives upgrades." ], "components": [ { - "current_version": "1.7.114-alpha", - "download_url": "http://146.59.87.168:3000/lfg2025/archy/releases/download/v1.7.114-alpha/archipelago", + "current_version": "1.7.115-alpha", + "download_url": "http://146.59.87.168:3000/lfg2025/archy/releases/download/v1.7.115-alpha/archipelago", "name": "archipelago", - "new_version": "1.7.114-alpha", - "sha256": "524039b6517c6e506f2d7933051349310704f3babd490d8125ced9ba24a0b0fc", - "size_bytes": 51705848 + "new_version": "1.7.115-alpha", + "sha256": "d4e2d7cb65bf7ac6461eb11642fb8ff9254be636c173a016ad1834d4073a7cee", + "size_bytes": 51768592 }, { - "current_version": "1.7.114-alpha", - "download_url": "http://146.59.87.168:3000/lfg2025/archy/releases/download/v1.7.114-alpha/archipelago-frontend-1.7.114-alpha.tar.gz", - "name": "archipelago-frontend-1.7.114-alpha.tar.gz", - "new_version": "1.7.114-alpha", - "sha256": "fc48209cdf18eaf935e589b2779c46f392e925c93c56ccd085437509c13d65fd", - "size_bytes": 177972573 + "current_version": "1.7.115-alpha", + "download_url": "http://146.59.87.168:3000/lfg2025/archy/releases/download/v1.7.115-alpha/archipelago-frontend-1.7.115-alpha.tar.gz", + "name": "archipelago-frontend-1.7.115-alpha.tar.gz", + "new_version": "1.7.115-alpha", + "sha256": "9c131c881016a4e451e2ea3688bc9114302adcb5a2b58e485f3273abcebf07bb", + "size_bytes": 178060942 } ], "release_date": "2026-07-26", - "signature": "25ca2cf334da4454cc0ad04165d8fc683a81527a33286bd7253c34a965a791204467fd7e9dba2e6e749469bce699867f7f99fea22d3278d88621ff6aa04ed109", + "signature": "80a76615a43e4b715b564143ffc7acf4e3897a921c0b6338c757963becfc6c979c118a7f32554c82ff32de283a4a0c0a566f27c98d4ffd7b6d93747a1f3ea103", "signed_by": "did:key:z6MkkidEnEpo6qHMCNSZoNKWtvQvxq3whnaME9wGgEFhq7ur", - "version": "1.7.114-alpha" + "version": "1.7.115-alpha" } diff --git a/releases/manifest.json b/releases/manifest.json index 7e15c279..08759d8a 100644 --- a/releases/manifest.json +++ b/releases/manifest.json @@ -1,31 +1,29 @@ { "changelog": [ - "Plugging in a mesh radio no longer traps it in an endless reboot loop. The device detector itself was causing it: every scan pulsed the radio's reset line, the same board was probed twice under two names, and retries came so fast the radio never finished booting before the next reset hit. Detection now gives the board real time to boot, probes it once, backs off properly between attempts, and no longer fights the \"device detected\" popup for the port. Radios that could never connect now come up within a minute of being plugged in.", - "The Lightning channels screen now has All / Active / Pending / Closed tabs. Pending gathers everything in motion (opening, closing, force-closing — each with its own status dot and a link to the closing transaction), and Closed is a real history: how each channel ended, what settled back to you, and the closing transaction for each.", - "Sending bitcoin on-chain now puts you in charge of the network fee: pick Fast, Standard, or Slow (Standard is the default), or set your own target blocks or sats-per-vByte. The confirmation step shows the estimated fee for your chosen speed before any money moves.", - "Type on-chain amounts in whichever unit you think in — a sats/BTC switch on the amount field converts as you type.", - "Back up your seed by scanning it. Every recovery-phrase screen (onboarding, Settings, and the Lightning wallet seed) now has Words and QR code tabs — words always shown first. The QR for your node's recovery phrase uses the SeedQR standard, so hardware wallets like Passport Prime, SeedSigner, and Keystone can import it with a single scan (a plain-text option remains for wallets that read the phrase as text). The Lightning seed's QR is plain text with an honest note: it's an LND-format seed that restores into Lightning wallets like Zeus or Blixt, not into hardware wallets." + "The companion app can reach your node's screen from anywhere again. The recent security hardening locked down the node's mesh interface so tightly that the dashboard itself was blocked — the phone would pair and connect, then sit on a blank screen. The node now explicitly opens its own web interface (and only that) through the mesh firewall on every install and upgrade, so the phone's view of your node works out of the box, on any network, and can't silently break in a future update.", + "The node's web interface also answers on IPv6 everywhere it answers on IPv4 — the mesh runs entirely on IPv6, and one v4-only listener was enough to make a working connection show nothing.", + "Nodes now come back onto the mesh in seconds instead of minutes after their rendezvous anchor restarts: the fast-reconnect tuning proven on the phone this week is now baked into every node's mesh configuration, and it survives upgrades." ], "components": [ { - "current_version": "1.7.114-alpha", - "download_url": "http://146.59.87.168:3000/lfg2025/archy/releases/download/v1.7.114-alpha/archipelago", + "current_version": "1.7.115-alpha", + "download_url": "http://146.59.87.168:3000/lfg2025/archy/releases/download/v1.7.115-alpha/archipelago", "name": "archipelago", - "new_version": "1.7.114-alpha", - "sha256": "524039b6517c6e506f2d7933051349310704f3babd490d8125ced9ba24a0b0fc", - "size_bytes": 51705848 + "new_version": "1.7.115-alpha", + "sha256": "d4e2d7cb65bf7ac6461eb11642fb8ff9254be636c173a016ad1834d4073a7cee", + "size_bytes": 51768592 }, { - "current_version": "1.7.114-alpha", - "download_url": "http://146.59.87.168:3000/lfg2025/archy/releases/download/v1.7.114-alpha/archipelago-frontend-1.7.114-alpha.tar.gz", - "name": "archipelago-frontend-1.7.114-alpha.tar.gz", - "new_version": "1.7.114-alpha", - "sha256": "fc48209cdf18eaf935e589b2779c46f392e925c93c56ccd085437509c13d65fd", - "size_bytes": 177972573 + "current_version": "1.7.115-alpha", + "download_url": "http://146.59.87.168:3000/lfg2025/archy/releases/download/v1.7.115-alpha/archipelago-frontend-1.7.115-alpha.tar.gz", + "name": "archipelago-frontend-1.7.115-alpha.tar.gz", + "new_version": "1.7.115-alpha", + "sha256": "9c131c881016a4e451e2ea3688bc9114302adcb5a2b58e485f3273abcebf07bb", + "size_bytes": 178060942 } ], "release_date": "2026-07-26", - "signature": "25ca2cf334da4454cc0ad04165d8fc683a81527a33286bd7253c34a965a791204467fd7e9dba2e6e749469bce699867f7f99fea22d3278d88621ff6aa04ed109", + "signature": "80a76615a43e4b715b564143ffc7acf4e3897a921c0b6338c757963becfc6c979c118a7f32554c82ff32de283a4a0c0a566f27c98d4ffd7b6d93747a1f3ea103", "signed_by": "did:key:z6MkkidEnEpo6qHMCNSZoNKWtvQvxq3whnaME9wGgEFhq7ur", - "version": "1.7.114-alpha" + "version": "1.7.115-alpha" } diff --git a/scripts/create-release-manifest.sh b/scripts/create-release-manifest.sh index 96c2ccbe..ed0a62b6 100755 --- a/scripts/create-release-manifest.sh +++ b/scripts/create-release-manifest.sh @@ -142,7 +142,7 @@ if [ -z "$FRONTEND_ARCHIVE" ]; then # SIGPIPE-safe: use awk to read only the first line and exit, # then terminate the tar pipeline explicitly so `pipefail`+SIGPIPE # don't kill the whole `set -euo pipefail` script. - root_mode=$(tar tvzf "$FRONTEND_ARCHIVE" 2>/dev/null | awk 'NR==1{print $1; exit}') + root_mode=$({ tar tvzf "$FRONTEND_ARCHIVE" 2>/dev/null || true; } | awk 'NR==1{print $1; exit}') case "$root_mode" in drwxr-xr-x|drwxr-x*x*) echo " Tarball root perms OK: $root_mode"