Highlights ✨
Fixes the Pi 2 / Pi 3 blank-screen crash and adds a content-import framework for migrating from other signage platforms, alongside a batch of viewer and platform improvements.
- Pi 2 / Pi 3 blank screen fixed — the Qt5 WebEngine viewer no longer crash-loops on armv7 boards. Modern Debian gcc emitted a misaligned 64-bit NEON store in QtWebEngine that faulted (SIGBUS) on the Cortex-A7 / A53, leaving a permanent blank screen; the Qt5 toolchain is now built with
arm_use_neon=false+ a-mno-unaligned-accesscross-compiler wrap. Validated end-to-end on real Pi 2 and native 32-bit Pi 3 hardware, and it also resolves the ANTHIAS-D / ANTHIAS-F heap-corruption crashes (#3184, closes #3022). - Import content from other signage platforms — a new extensible import-provider framework pulls playlists and assets from Yodeck, ScreenCloud, piSignage, and Xibo CMS.
- Self-signed HTTPS media & pages — a
verify_ssltoggle with a per-asset override so internal/self-hosted HTTPS content renders instead of failing. - Per-asset custom HTTP headers, timezone selection & on-device clock in Settings, and bulk edit of No cache / Skip asset check.
- Pi 3 (64-bit) hardware video — 30 fps playback with audio, plus reduced-seam in-slot looping.
- Stability — Chromium low-memory profile and bounded viewer output on ~1 GB boards, a swapoff-OOM upgrade fix, resumable-upload isolation, and WebSocket / Celery / Sentry hardening.
What's Changed
Other Changes 🔧
- feat(import): import content from Yodeck via an extensible import-provider framework by @vpetersson in #3144
- feat(import): add ScreenCloud (GraphQL) provider to the import framework by @vpetersson in #3145
- feat(import): add OptiSigns (GraphQL) provider to the import framework by @vpetersson in #3146
- feat(import): add piSignage (REST) provider to the import framework by @vpetersson in #3148
- feat(import): add Xibo CMS (REST) provider to the import framework by @vpetersson in #3149
- docs(import): list all supported import providers by @vpetersson in #3151
- feat(bulk-edit): add No cache & Skip asset check to mass edit; restore nocache in viewer by @vpetersson in #3150
- fix(import): correct ScreenCloud endpoints/download; broaden Yodeck files by @vpetersson in #3152
- Update index.html by @JonnyTech in #3153
- fix(import): correct OptiSigns field mapping and extension source by @vpetersson in #3154
- chore(import): remove the OptiSigns provider by @vpetersson in #3157
- fix(viewer): bound AnthiasViewer output instead of buffering it in RAM by @vpetersson in #3147
- fix(sentry): drop operator-input/config noise events (#3034) by @vpetersson in #3158
- fix(viewer): self-heal a headless-boot Wayland display wedge by @vpetersson in #3155
- fix(upload): isolate resumable uploads with a per-request temp path by @vpetersson in #3159
- refactor(viewer): split start_viewer.sh into per-platform libs by @vpetersson in #3161
- fix(viewer): stop webpage transitions flashing a foreign page by @vpetersson in #3160
- feat(settings): add userspace timezone selection and a device clock by @vpetersson in #3163
- chore(deps): bump the github-actions group with 6 updates by @dependabot[bot] in #3173
- fix(upgrade): stop swapoff OOM from aborting run_upgrade by @vpetersson in #3172
- feat(webview): per-asset custom HTTP headers for web assets by @vpetersson in #3162
- chore(deps): bundle routine dependency bumps by @vpetersson in #3175
- pi3-64 hardware video playback (30fps, zero drops) + audio by @vpetersson in #3164
- feat(ssl): support self-signed HTTPS media/pages via verify_ssl + per-asset override by @vpetersson in #3176
- pi3-64: reduced-seam in-slot video looping (SEGMENT seeks) by @vpetersson in #3174
- fix(viewer): force Chromium's low-memory profile on ~1 GB boards by @vpetersson in #3178
- feat(website): generate llms.txt and llms-full.txt by @vpetersson in #3179
- fix(celery): give reconcile_stuck_processing a soft time limit by @vpetersson in #3180
- fix(sentry): drop client-disconnect static-file noise by @vpetersson in #3182
- fix(ws): tolerate a client that disconnects mid-broadcast by @vpetersson in #3181
- fix(image-builder): consume WebView-v2026.07.1 Qt5 toolchain by @vpetersson in #3185
- fix(webview): stop Pi 2/3 blank screen from gcc NEON alignment SIGBUS by @vpetersson in #3184
Full Changelog: v2026.07.1...v2026.07.2