Skip to content

2026.07.1

Latest

Choose a tag to compare

@vpetersson vpetersson released this 08 Jul 07:40
99073a4

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 in 2026.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 +rpt1 ffmpeg 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_asset downloads 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_send to 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