Skip to content

Anthias

v2026.06.3 Feature

This release adds 3 notable features for engineering teams evaluating rollout.

Published 1mo Media Servers
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

digital-signage iot python raspberry-pi

Summary

AI summary

Broad release touches Server & celery resilience, viewer, Viewer & webview, and Build & infra.

Changes in this release

Feature Low

Adds arm64/Qt6 support for pi3-64 board and Rock Pi 4 fleet; retains 32‑bit pi3 legacy.

Adds arm64/Qt6 support for pi3-64 board and Rock Pi 4 fleet; retains 32‑bit pi3 legacy.

Source: llm_adapter@2026-06-09

Confidence: high

Feature Low

Adds Sentry error tracking to Django services.

Adds Sentry error tracking to Django services.

Source: llm_adapter@2026-06-09

Confidence: high

Feature Low

Tags Sentry events with device type, host kernel, and board model.

Tags Sentry events with device type, host kernel, and board model.

Source: llm_adapter@2026-06-09

Confidence: high

Feature Low

Stamps releases with build hash and tags balena deploys in Sentry.

Stamps releases with build hash and tags balena deploys in Sentry.

Source: llm_adapter@2026-06-09

Confidence: high

Feature Low

Offers HandBrake GUI steps for rejected video uploads in server.

Offers HandBrake GUI steps for rejected video uploads in server.

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Feature Low

Adds hourly job to unpin pinned fleet devices in balena automation.

Adds hourly job to unpin pinned fleet devices in balena automation.

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Feature Low

Unpinner also rolls OS and supervisor updates for fleets in balena automation.

Unpinner also rolls OS and supervisor updates for fleets in balena automation.

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Dependency Low

Bumps uvicorn from 0.32.1 to 0.49.0, pyyaml from 6.0.2 to 6.0.3, django‑stubs from 6.0.3 to 6.0.5, and updates github‑actions group.

Bumps uvicorn from 0.32.1 to 0.49.0, pyyaml from 6.0.2 to 6.0.3, django‑stubs from 6.0.3 to 6.0.5, and updates github‑actions group.

Source: llm_adapter@2026-06-09

Confidence: high

Performance Medium

Paces Qt6 video frame delivery to scene‑render capacity in viewer.

Paces Qt6 video frame delivery to scene‑render capacity in viewer.

Source: llm_adapter@2026-06-09

Confidence: high

Bugfix Medium

Stops reporting transient Redis blips and client disconnects to Sentry.

Stops reporting transient Redis blips and client disconnects to Sentry.

Source: llm_adapter@2026-06-09

Confidence: high

Bugfix Medium

Drops transient Redis TimeoutError events from Sentry reporting.

Drops transient Redis TimeoutError events from Sentry reporting.

Source: llm_adapter@2026-06-09

Confidence: high

Bugfix Medium

Silences celery redis‑backend reconnect‑retry log messages.

Silences celery redis‑backend reconnect‑retry log messages.

Source: llm_adapter@2026-06-09

Confidence: high

Bugfix Medium

Runs PulseAudio so Qt 6 video plays with audio in viewer.

Runs PulseAudio so Qt 6 video plays with audio in viewer.

Source: llm_adapter@2026-06-09

Confidence: high

Bugfix Medium

Opens SQLite with WAL journaling and a busy timeout in server.

Opens SQLite with WAL journaling and a busy timeout in server.

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Medium

Gates worker startup on applied database migrations in celery.

Gates worker startup on applied database migrations in celery.

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Medium

Catches asset‑probe timeout instead of hard‑killing the celery worker.

Catches asset‑probe timeout instead of hard‑killing the celery worker.

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Medium

Survives unreadable static files instead of crash‑looping in server.

Survives unreadable static files instead of crash‑looping in server.

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Aspect-fit, gapless looping, and caps video to 30 fps on pi1/2/3 in viewer.

Aspect-fit, gapless looping, and caps video to 30 fps on pi1/2/3 in viewer.

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Defaults x86 audio fallback to ALSA 'default' in viewer.

Defaults x86 audio fallback to ALSA 'default' in viewer.

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Waits for Wayland socket before spawning webview in viewer.

Waits for Wayland socket before spawning webview in viewer.

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Adds page‑load watchdog to prevent stalled fetches from freezing display in webview.

Adds page‑load watchdog to prevent stalled fetches from freezing display in webview.

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Respawns webview when it dies mid‑DBus call, before setup's bus.get, and on video‑play DBus death rather than logging and stopping.

Respawns webview when it dies mid‑DBus call, before setup's bus.get, and on video‑play DBus death rather than logging and stopping.

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Silences shell monitor‑thread crash report on webview exit in viewer.

Silences shell monitor‑thread crash report on webview exit in viewer.

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Stores display_power in redis as a string, not a bool, in server/celery.

Stores display_power in redis as a string, not a bool, in server/celery.

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Keeps legacy host timezones from causing Django crash loops in server.

Keeps legacy host timezones from causing Django crash loops in server.

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Streams backup download to avoid timeouts for large libraries in server.

Streams backup download to avoid timeouts for large libraries in server.

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Accepts 12‑hour AM/PM times in asset edit form in views.

Accepts 12‑hour AM/PM times in asset edit form in views.

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Surfaces exception detail in GitHub update‑check warnings and logs release‑check failures at warning level, not error, in server/views.

Surfaces exception detail in GitHub update‑check warnings and logs release‑check failures at warning level, not error, in server/views.

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Ships libwebpdemux2 so pi3 Pillow can save WebP images.

Ships libwebpdemux2 so pi3 Pillow can save WebP images.

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Bugfix Low

Persists Redis data to mounted volume for device identity survival on recreation.

Persists Redis data to mounted volume for device identity survival on recreation.

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

Full changelog

Maintenance release rolling up everything since 2026.06.1 (the 2026.06.2 bump was never cut as a release). Focus areas: arm64/Qt6 board support, Sentry error tracking, viewer/webview crash-recovery, and server/celery resilience. Cutting this triggers the balena OTA deploy to all screenly_ose/anthias-* fleets; unpinned devices pull it and restart.

New boards & fleets

  • feat(viewer,build,balena): add arm64/Qt6 pi3-64 board and the Rock Pi 4 fleet; keep 32-bit pi3 as legacy (#2985).

Observability

  • feat(sentry): add Sentry error tracking to the Django services (#3007).
  • feat(sentry): tag events with device type, host kernel, and board model (#3021).
  • feat(sentry): stamp the release with the build hash and tag balena deploys (#3025).
  • fix(sentry): stop reporting transient redis blips and client disconnects (#3018), also drop transient redis TimeoutError events (#3028), and silence the celery redis-backend reconnect-retry log (#3036).
  • fix(celery): don't report the by-design codec rejection to Sentry (#3041).

Performance

  • perf(viewer): pace Qt6 video frame delivery to scene-render capacity (#3006).
  • fix(viewer): aspect-fit, gapless looping, and 30fps cap for pi1/2/3 video (#3004).

Viewer & webview

  • fix(viewer): run PulseAudio so Qt 6 video plays with audio (#3001).
  • fix(viewer): default x86 audio fallback to ALSA 'default' (#3038).
  • fix(viewer): wait for cage's Wayland socket before spawning the webview (#3030).
  • fix(webview): add a page-load watchdog so a stalled fetch can't freeze the display (#3003).
  • fix(viewer): respawn the webview when it dies mid-D-Bus call (#3012), before setup's bus.get (#3020), and on a video-play D-Bus death rather than log+stop (#3031).
  • fix(viewer): silence sh's monitor-thread crash report on webview exit (#3011).

Server & celery resilience

  • fix(server): open SQLite with WAL journaling and a busy timeout (#3015).
  • fix(celery): gate worker startup on applied database migrations (#3016).
  • fix(celery): catch the asset-probe timeout instead of hard-killing the worker (#3017).
  • fix(celery): store display_power in redis as a string, not a bool (#3032).
  • fix(server): survive unreadable static files instead of crash-looping (#3026).
  • fix(server): keep legacy host timezones from crash-looping Django (#3010).
  • fix(server): stream the backup download so large libraries don't time out (#3005).
  • fix(views): accept 12-hour AM/PM times in the asset edit form (#3002).
  • fix(server): surface the exception detail in GitHub update-check warnings (#3023) and log release-check failures at warning, not error (#3019).

Uploads

  • feat(server): offer HandBrake GUI steps for rejected video uploads (#3040).

Balena fleet automation

  • feat(balena): hourly job to unpin pinned fleet devices (#2980).
  • feat(balena): unpinner also rolls OS + supervisor updates (#2984).

Build & infra

  • fix(build): ship libwebpdemux2 so pi3 Pillow can save WebP (#3042).
  • fix(redis): persist data to the mounted volume so device identity survives recreation (#2983).
  • fix(docker): pull the BuildKit frontend via mirror.gcr.io (#3008).
  • Fixes SBOM (#2982).

Dependencies

  • Bump uvicorn 0.32.1 → 0.49.0 (#2991), pyyaml 6.0.2 → 6.0.3 (#2993), django-stubs 6.0.3 → 6.0.5 (#2989), types-python-dateutil (#2992), and the github-actions group (#2994).

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Anthias

Get notified when new releases ship.

Sign up free

About Anthias

The world's most popular open source digital signage project.

All releases →

Related context

Earlier breaking changes

  • v2026.05.1 Removes legacy `srly-ose-redis` container on upgrade.

Beta — feedback welcome: [email protected]