Release gates now block broken installs — 1.5.132 adds six-layer QA
Posted by tomspark
SparkBox 1.5.132 ships with a complete QA pipeline that catches the install and bootstrap failures we've shipped in the last 60 days. Every release now runs through six gates: syntax, schema, env-consistency, distro matrix, smoke tests, and cold-install rehearsal. If any gate fails, the release doesn't ship. The big structural change: arr-bootstrap.sh no longer marks itself done until Radarr, qBit, and Prowlarr are actually registered. The 2026-04-30 failure mode (script exits green, logs say WARN, critical steps silently skip) is now impossible — bootstrap exits 1 and 'sparkbox up' triggers a fresh attempt. Tier 2 rehearsal is mandatory for any release touching install.sh, sparkbox bootstrap, or dashboard self-update. You can override with SBSKIPREHEARSAL=1 + a 20-char reason, but it's logged to release-audit.log so we audit what shipped without it. On your box you'll see: - sparkbox restore --yes flag (needed for backup round-trip tests; interactive mode still works) - Per-app functional smoke: Jellyfin, qBittorrent, Vaultwarden, AdGuard, Audiobookshelf, Immich, Nextcloud, Pi-hole all verified live on release - Three floating :latest images (searxng, sockpuppetbrowser, deunhealth) now pinned to digests — module updates are deliberate, not silent drift - sparkbox doctor now runs with --strict mode on release gates (treats warnings as failures) Check the Updates tab in your dashboard. If you hit an issue, post it here in d/sparkbox. --- Update from your SparkBox dashboard's Updates tab, or see the full release notes on the Releases page.