Skip to content

2026.07.0

Latest

Choose a tag to compare

@vpetersson vpetersson released this 02 Jul 12:29
87e8259

Highlights

A monthly roll-up of the fixes and features merged since 2026.06.3. Notable themes:

Display & viewer

  • Screen rotation now works on all cage/Wayland boards (Pi 5, arm64) (#3047)
  • New blank/unblank commands to turn the display off/on (#3065)
  • "Prefer dark mode" setting for web-page assets (#3050)

Assets & playback

  • Bulk asset management — enable/disable/edit/delete from the home screen (#3048), plus restored multi-file bulk upload (#3049) and UI/UX polish (#3066)
  • New assets now display without a restart: the viewer detects DB changes under SQLite WAL mode (#3062)
  • RTSP / streaming URLs are classified as streaming rather than web pages (#3071)
  • yt-dlp format selection biased toward the board's HW-decoded codec (Pi 5 HEVC) (#3093)

Reliability & telemetry

  • Celery soft-limits on the display-power and telemetry pokes so a slow poke can't SIGKILL the worker (#3063)
  • Settings-save input validation no longer reported to Sentry as errors (#3068)
  • Backup is streamed as an async iterator so large backups don't time out (#3074)

Install & build

  • armhf builds moved off the retired Linaro toolchain to Debian's crossbuild toolchain (#3070)
  • polkitd installed on the Trixie+ manage-network path (#3060); pi3-64 accepted in Ansible validation (#3067); Pi 3 image stream detected from userspace arch (#3076); python3-dev added for the armv7l cffi build (#3100)
  • collect_debug.sh for debugging faulty installations (#3077)
  • Disk images compressed with xz instead of zstd (#3107); rpi-imager images tagged with hardware devices so they list in Imager (#3090)

Tested on hardware ✅

Full integrated-stack end-to-end validation of this release's images across three hardware classes. Every supported asset type was driven through the real viewer and verified to load and play back:

Asset type x86 (amd64) Raspberry Pi 5 Raspberry Pi 4
Image
Video ✅ H.264 ✅ HEVC (HW decode) ✅ H.264 (HW decode)
Web page

All four services (server / viewer / celery / redis) healthy on every board, with a clean error/crash scan across the run. Pi 5 HEVC and Pi 4 H.264 confirmed using the hardware video decoders.


What's Changed

Other Changes 🔧

  • fix(viewer): recognize all cage/Wayland boards for screen rotation by @vpetersson in #3047
  • fix(server): restore multi-file (bulk) upload in the Add Asset modal by @vpetersson in #3049
  • feat(viewer): add "Prefer dark mode" setting for web page assets by @vpetersson in #3050
  • fix(balena): add missing device types to unpin fleet map by @vpetersson in #3051
  • fix(install): install polkitd on Trixie+ manage-network path; minimize apt updates by @vpetersson in #3060
  • feat(server): add bulk asset management (enable/disable/edit/delete) by @vpetersson in #3048
  • chore(deps): bump grouped Dependabot updates and refresh uv.lock by @vpetersson in #3064
  • fix(viewer): detect DB changes under WAL so new assets load by @vpetersson in #3062
  • fix(server): polish home bulk-action & upload UI/UX by @vpetersson in #3066
  • fix(celery): soft-limit the display-power and telemetry pokes by @vpetersson in #3063
  • feat(viewer): blank/unblank commands to turn the display off by @vpetersson in #3065
  • fix(install): accept pi3-64 in Ansible playbook validation by @vpetersson in #3067
  • fix(sentry): don't report settings-save input validation as errors by @vpetersson in #3068
  • fix(build): replace retired Linaro armhf toolchain with Debian's by @vpetersson in #3070
  • fix(server): classify RTSP/streaming URLs as streaming, not webpage by @vpetersson in #3071
  • fix(server): stream the backup as an async iterator so it doesn't time out by @vpetersson in #3074
  • fix(install): detect Pi 3 image stream from userspace arch, not kernel by @vpetersson in #3076
  • feat(bin): add collect_debug.sh for debugging faulty installations by @vpetersson in #3077
  • chore(deps-dev): bump the bun group with 3 updates by @dependabot[bot] in #3083
  • chore(deps): bump pytest, certifi, ansible-core, sentry-sdk by @vpetersson in #3086
  • chore(deps): bump msgpack from 1.1.2 to 1.2.1 by @dependabot[bot] in #3091
  • fix(server): allow LAN/private hosts in asset reachability probe by @vpetersson in #3103
  • chore(deps): bump the github-actions group across 1 directory with 5 updates by @dependabot[bot] in #3105
  • feat(webview): append Anthias version to the User-Agent by @vpetersson in #3102
  • docs(website): cover root-password sudo/curl gap in x86 install guide by @vpetersson in #3106
  • fix(install): add python3-dev for armv7l cffi build by @vpetersson in #3100
  • chore(images): compress disk images with xz instead of zstd by @vpetersson in #3107
  • chore(deps): consolidated dependency bump by @vpetersson in #3108
  • fix: bias yt-dlp format_sort toward board's HW-decoded codec (Pi 5 HEVC) by @TekScene in #3093
  • fix(rpi-imager): tag images with hardware devices so Imager lists them by @vpetersson in #3090
  • chore(release): bump to 2026.07.0 by @vpetersson in #3109

New Contributors

Full Changelog: v2026.06.3...v2026.07.0