Highlights
A point release rolling up the fixes and features merged since 2026.07.0. Notable themes:
Backup / restore (streaming, low-RAM safe)
- The restore upload is streamed to disk instead of
read()into memory, so a multi-GB restore no longer OOMs the worker on a 1 GB Pi (#3143). Pairs with the streamed backup download shipped in2026.07.0(#3074).
Viewer & display
- linuxfb display mode is re-asserted after an HDMI hotplug, so the picture comes back at full resolution when a TV is power-cycled (#3075)
- Stale PulseAudio pid file is cleared on start so HDMI audio survives a reboot (#3113)
- pi3-64 ships
+rpt1ffmpeg so H.264 uses hardware decode (#3110)
Assets & API
- New signage app store in the Add Asset flow (#3114)
- Absolute-path asset URIs are confined to the asset directory (#3117) and
youtube_assetdownloads are gated on a real YouTube URL (#3118) - Asset duration is bounded to prevent a viewer crash-loop (#3128); disk-full uploads are handled gracefully (#3133)
- The update check picks the latest CalVer release rather than GitHub's
/releases/latest(#3130)
Reliability & telemetry
- Offline-device and operator-input events are dropped in Sentry
before_sendto cut noise (#3132, #3141) - Reboot/shutdown survives a down balena supervisor (#3131)
Install & build
- Install probes actual sudo capability instead of guessing from the sudoers filename (#3129)
- Frozen Qt 5 webview toolchain bumped to 5.15.19 (#3121)
Tested on hardware ✅
Full 6-board testbed QA of this release is green (Pi 2, Pi 3-64, Pi 4, Pi 5, x86, Rock Pi 4):
- REST API v1 / v1.1 / v1.2 / v2 — all checks pass on every board.
- Rendering — image, web page, and video present on all six boards, with hardware video decode verified (Pi 5 HEVC, Pi 4 H.264).
- Backup / restore streaming (#3074 + #3143) — end-to-end validated on all three 1 GB boards (pi3-64, pi4-64, Rock Pi 4) with a real 641 MB backup: streamed both directions, peak RSS ~70–170 MiB (far below the archive size), full restore, 0 OOM, 0 container restarts.
Two pre-existing, non-regressing findings remain tracked separately: choppy 1080p presentation on the Qt6 Pi boards (#2987) and stop/blank not pausing the loop on headless Wayland (#3136).
What's Changed
Other Changes 🔧
- docs(website): promote Raspberry Pi Imager across the site by @vpetersson in #2919
- fix(website): correct Pi 3 board status on get-started page by @vpetersson in #3111
- fix(build): ship +rpt1 ffmpeg on pi3-64 so H.264 uses HW decode by @vpetersson in #3110
- fix(viewer): clear stale PulseAudio pid file so audio survives reboot by @vpetersson in #3113
- feat(assets): add signage app store to the Add Asset flow by @vpetersson in #3114
- fix(assets): name store-app assets from their chosen setting, not the manifest name by @vpetersson in #3115
- feat(ui): add Star on GitHub / Review on G2 CTAs by @vpetersson in #3116
- fix(api): confine absolute-path asset URIs to the asset directory by @vpetersson in #3117
- fix(api): gate youtube_asset downloads on a real YouTube URL by @vpetersson in #3118
- fix(system-info): tidy up x86 Device Info (CEC state + device model) by @vpetersson in #3119
- docs: point Screenly migration guide at the in-app wizard by @vpetersson in #3120
- chore(webview): bump frozen Qt 5 toolchain to 5.15.19 by @vpetersson in #3121
- fix(assets): bound asset duration to prevent viewer crash-loop by @vpetersson in #3128
- fix(server): handle disk-full uploads gracefully by @vpetersson in #3133
- fix(sentry): drop offline-device gaierror events in before_send by @vpetersson in #3132
- fix(server): pick latest CalVer release, not GitHub /releases/latest by @vpetersson in #3130
- fix(celery): survive a down balena supervisor in reboot/shutdown by @vpetersson in #3131
- fix(install): probe sudo capability instead of guessing from sudoers filename by @vpetersson in #3129
- fix(viewer): re-assert linuxfb display mode after HDMI hotplug by @vpetersson in #3075
- fix(api): stream the recover upload to disk instead of read() by @vpetersson in #3143
- fix(sentry): drop expected operator-input/transient noise (round 2) by @vpetersson in #3141
- chore(release): bump to 2026.07.1 by @vpetersson in #3139
Full Changelog: v2026.07.0...v2026.07.1