archy/releases/manifest.json

28 lines
1.5 KiB
JSON
Raw Normal View History

{
release(v1.7.15-alpha): bulletproof downloads — resume, retry, real progress download_update Each component download is now resumable via HTTP Range requests (Range: bytes=N-) and retried up to 6 times with exponential backoff (5/15/30/60/120/180s). On a dropped connection the next attempt picks up at the last written byte offset instead of restarting at zero. Streams via reqwest::Response::chunk() to the staging file so a 160 MB frontend tarball doesn't sit in RAM. SHA is verified over the complete file at the end of each component; mismatch nukes the staged file and restarts from scratch. Real download progress counters New AtomicU64 globals DOWNLOAD_BYTES/DOWNLOAD_TOTAL are updated from the chunk loop. update.status exposes them as download_progress.{bytes_downloaded, total_bytes, active}. The SystemUpdate.vue progress bar now polls update.status every second instead of incrementing a fake random counter — and crucially, if the user navigates away and back, the component picks up the in-progress download from the backend atomics immediately. Update-check retries handle_update_check now retries the manifest fetch up to 3 times with a 5s gap if the first try hits a transport error, so a momentary gitea hiccup doesn't make a node report "up to date" when there actually is a new release. Tight 10s connect timeout per attempt keeps the total bounded. Artefacts: archipelago 1070c87f…c081c162b 40584792 archipelago-frontend-1.7.15-alpha.tar.gz 8e630eba…63fd43f 162078068 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 17:17:58 -04:00
"version": "1.7.15-alpha",
"release_date": "2026-04-20",
"changelog": [
release(v1.7.15-alpha): bulletproof downloads — resume, retry, real progress download_update Each component download is now resumable via HTTP Range requests (Range: bytes=N-) and retried up to 6 times with exponential backoff (5/15/30/60/120/180s). On a dropped connection the next attempt picks up at the last written byte offset instead of restarting at zero. Streams via reqwest::Response::chunk() to the staging file so a 160 MB frontend tarball doesn't sit in RAM. SHA is verified over the complete file at the end of each component; mismatch nukes the staged file and restarts from scratch. Real download progress counters New AtomicU64 globals DOWNLOAD_BYTES/DOWNLOAD_TOTAL are updated from the chunk loop. update.status exposes them as download_progress.{bytes_downloaded, total_bytes, active}. The SystemUpdate.vue progress bar now polls update.status every second instead of incrementing a fake random counter — and crucially, if the user navigates away and back, the component picks up the in-progress download from the backend atomics immediately. Update-check retries handle_update_check now retries the manifest fetch up to 3 times with a 5s gap if the first try hits a transport error, so a momentary gitea hiccup doesn't make a node report "up to date" when there actually is a new release. Tight 10s connect timeout per attempt keeps the total bounded. Artefacts: archipelago 1070c87f…c081c162b 40584792 archipelago-frontend-1.7.15-alpha.tar.gz 8e630eba…63fd43f 162078068 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 17:17:58 -04:00
"Updates survive network hiccups. Downloads now resume from exactly where a dropped connection left off, and retry up to 6 times with increasing gaps between attempts, instead of restarting from byte zero or giving up.",
"The download progress bar now shows real progress. Instead of a fake number that creeps to 95% and freezes, you see the actual bytes arriving, and it continues to update correctly even if you navigate away and come back.",
"Update check itself retries on slow responses. If git.tx1138.com is momentarily overloaded, the node tries three times with a five-second wait between attempts before concluding you're up to date."
],
"components": [
{
"name": "archipelago",
release(v1.7.15-alpha): bulletproof downloads — resume, retry, real progress download_update Each component download is now resumable via HTTP Range requests (Range: bytes=N-) and retried up to 6 times with exponential backoff (5/15/30/60/120/180s). On a dropped connection the next attempt picks up at the last written byte offset instead of restarting at zero. Streams via reqwest::Response::chunk() to the staging file so a 160 MB frontend tarball doesn't sit in RAM. SHA is verified over the complete file at the end of each component; mismatch nukes the staged file and restarts from scratch. Real download progress counters New AtomicU64 globals DOWNLOAD_BYTES/DOWNLOAD_TOTAL are updated from the chunk loop. update.status exposes them as download_progress.{bytes_downloaded, total_bytes, active}. The SystemUpdate.vue progress bar now polls update.status every second instead of incrementing a fake random counter — and crucially, if the user navigates away and back, the component picks up the in-progress download from the backend atomics immediately. Update-check retries handle_update_check now retries the manifest fetch up to 3 times with a 5s gap if the first try hits a transport error, so a momentary gitea hiccup doesn't make a node report "up to date" when there actually is a new release. Tight 10s connect timeout per attempt keeps the total bounded. Artefacts: archipelago 1070c87f…c081c162b 40584792 archipelago-frontend-1.7.15-alpha.tar.gz 8e630eba…63fd43f 162078068 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 17:17:58 -04:00
"current_version": "1.7.14-alpha",
"new_version": "1.7.15-alpha",
"download_url": "https://git.tx1138.com/lfg2025/archy/raw/branch/main/releases/v1.7.15-alpha/archipelago",
"sha256": "1070c87fd24fc56b2edcb6ea37f42fa47dfbdc9a4840151f723bbc9c081c162b",
"size_bytes": 40584792
},
{
release(v1.7.15-alpha): bulletproof downloads — resume, retry, real progress download_update Each component download is now resumable via HTTP Range requests (Range: bytes=N-) and retried up to 6 times with exponential backoff (5/15/30/60/120/180s). On a dropped connection the next attempt picks up at the last written byte offset instead of restarting at zero. Streams via reqwest::Response::chunk() to the staging file so a 160 MB frontend tarball doesn't sit in RAM. SHA is verified over the complete file at the end of each component; mismatch nukes the staged file and restarts from scratch. Real download progress counters New AtomicU64 globals DOWNLOAD_BYTES/DOWNLOAD_TOTAL are updated from the chunk loop. update.status exposes them as download_progress.{bytes_downloaded, total_bytes, active}. The SystemUpdate.vue progress bar now polls update.status every second instead of incrementing a fake random counter — and crucially, if the user navigates away and back, the component picks up the in-progress download from the backend atomics immediately. Update-check retries handle_update_check now retries the manifest fetch up to 3 times with a 5s gap if the first try hits a transport error, so a momentary gitea hiccup doesn't make a node report "up to date" when there actually is a new release. Tight 10s connect timeout per attempt keeps the total bounded. Artefacts: archipelago 1070c87f…c081c162b 40584792 archipelago-frontend-1.7.15-alpha.tar.gz 8e630eba…63fd43f 162078068 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 17:17:58 -04:00
"name": "archipelago-frontend-1.7.15-alpha.tar.gz",
"current_version": "1.7.14-alpha",
"new_version": "1.7.15-alpha",
"download_url": "https://git.tx1138.com/lfg2025/archy/raw/branch/main/releases/v1.7.15-alpha/archipelago-frontend-1.7.15-alpha.tar.gz",
"sha256": "8e630ebaddf88ac0e0500eeb80cfea24e6cd87c41c0d6b934e66d7b7f63fd43f",
"size_bytes": 162078068
}
]
}