Skip to content

Releases: FrameOS/frameos

FrameOS 2026.7.6

Choose a tag to compare

@github-actions github-actions released this 18 Jul 00:11

New features

  • Waveshare 13.3" E (EPD_13in3e) now uses hardware SPI on devices when available, with a software SPI fallback if SPI cannot be opened.
  • Deployment planning now treats Waveshare EPD_13in3e as a boot-configured SPI device in both backend driver setup and the UI’s deploy driver inference.

Bug fixes

  • Fixed EPD_13in3e boot configuration so SPI0 is enabled without kernel chip selects, while GPIO 7 and 8 remain available for the driver’s manual chip-select handling.
  • Fixed WebAssembly runtime builds to build QuickJS from source when the quickjs/ directory contains a prebuilt copy.

Maintenance

  • Moved npm package publishing into a dedicated workflow using trusted publishing, with support for manually rerunning publishes without bumping versions.
  • Updated driver setup tests to cover the new Waveshare EPD_13in3e SPI boot configuration behavior.

Docker images

FrameOS 2026.7.5

Choose a tag to compare

@github-actions github-actions released this 15 Jul 08:35

New features

  • Added an embeddable scene editor and live scene preview bundle, so FrameOS editing and WebAssembly previews can be embedded outside the main FrameOS UI.
  • Added published WebAssembly/runtime packages for browser-based FrameOS previews and embedded editor integrations.
  • Expanded JavaScript app runtime APIs with bounded HTTP requests, text/JSON fetch helpers, scoped settings access, asset file operations, asset image loading, and chunked stream support for larger workflows.

Bug fixes

  • Fixed Home Assistant MQTT sync in Docker deployments by including the required MQTT client dependency in the runtime image.
  • Fixed stale embedded firmware and OTA downloads by marking firmware responses as no-store and adding checksum-based download URLs.
  • Improved embedded/ESP32 runtime stability by avoiding large cached image buffers on-device and rendering error images in-place where needed.
  • Fixed several image/data apps so download and service errors render at the correct frame size instead of producing incorrectly sized error images.
  • Fixed gallery image downloads to show a FrameOS error image instead of failing the render when the download fails.
  • Fixed SVG render failures on embedded devices so errors are drawn safely into the current render buffer.
  • Fixed JavaScript/TypeScript transpilation regressions where object keys and values after template literal interpolations or comparisons could be stripped incorrectly.
  • Improved ESP32 OTA handling so devices acknowledge OTA requests before the scheduled reboot.

Maintenance

  • Added automated builds for the browser preview/editor packages as part of the release pipeline.
  • Updated the Docker build to install and build the new WebAssembly and editor package workspaces.
  • Added and expanded tests for embedded firmware APIs, OTA downloads, embedded image URLs, JavaScript runtime HTTP/assets/streams, and transpiler regressions.
  • Added generated built-in app metadata and smoke testing for the embedded editor bundle.

Docker images

FrameOS 2026.7.4

Choose a tag to compare

@github-actions github-actions released this 08 Jul 22:34

New features

  • Home Assistant “Save & sync now” now returns real sync feedback, including how many frames were shared, which MQTT broker was used, warnings, and actionable error messages.
  • Home Assistant MQTT host is now optional for standalone setups: when MQTT credentials are provided without a host, FrameOS defaults to the Home Assistant URL hostname, falling back to homeassistant.local.
  • Home Assistant sync can now warn when frame events are reaching the Home Assistant event bus but no MQTT broker is configured, instead of treating that case as a full failure.

Bug fixes

  • Fixed the in-browser live preview in production builds by serving the frameos-wasm bundle from the backend.
  • Fixed live preview loading when FrameOS is accessed through Home Assistant ingress by resolving the WASM worker URL through the configured asset/base path.

Maintenance

  • Added backend tests for Home Assistant MQTT host resolution, sync request replies, missing-broker warnings, sync failures, and shared-frame reporting.
  • Updated settings UI visual snapshots after the Home Assistant settings changes.
  • Improved toast/working-message handling so longer success, warning, and error messages stay visible long enough to read.

Docker images

FrameOS 2026.7.3

Choose a tag to compare

@github-actions github-actions released this 08 Jul 10:08

New features

  • Added a live browser preview for interpreted scenes, powered by a WebAssembly build of the FrameOS runtime and available from the scene UI.
  • Added backend/API support for live previews, including frame-specific preview settings and a guarded server-side fetch proxy for scene data apps that need device-like HTTP access.
  • Added Home Assistant sharing: FrameOS can publish non-archived frames via MQTT discovery with image, status, scene, and last-seen entities, plus a summary frame-count sensor.
  • Added Home Assistant event forwarding for meaningful frame events to the Home Assistant event bus and per-frame MQTT event topics.
  • Added Home Assistant settings support, including a backend endpoint to trigger an immediate sync when sharing is enabled.
  • System scene templates now include stable template IDs and versions so installed scenes can track their source and detect template updates.

Bug fixes

  • Home Assistant MQTT credentials and sync-only settings are no longer included in the frame configuration sent to devices; frame apps only receive the Home Assistant URL and access token when required.
  • Apps that are unavailable on embedded targets are now also blocked from the WebAssembly live-preview target, with clearer “not available on this build target” errors.
  • The live-preview HTTP proxy now rejects loopback, private, link-local, multicast, reserved, and unspecified hosts to reduce the risk of using the backend as an internal network probe.

Maintenance

  • Added a WebAssembly build pipeline for the FrameOS interpreted-scene runtime and includes the generated preview bundle in the frontend build.
  • Added an MQTT client dependency for the Home Assistant sync service.
  • Added backend tests for Home Assistant discovery payloads, sync behavior, settings notifications, template metadata, and Home Assistant setting filtering.
  • Updated visual snapshots for the scene, workspace, and settings UI changes.
  • Updated Docker build steps and release/deployment automation to build the new frontend/runtime assets and publish add-on metadata.

Docker images

FrameOS 2026.7.2

Choose a tag to compare

@github-actions github-actions released this 06 Jul 22:51

New features

  • Added a new Weather sample template with bundled scenes for current conditions, hourly charts, daily forecasts, stacked layouts, and icon sheets.
  • Added new JavaScript weather apps: Weather icon set, Weather icon, and Weather panel for building weather-focused scenes from Open-Meteo data.
  • Improved the Weather data app with a proper date field, configurable forecast days from 1–16, and automatic use of the frame timezone.
  • Added support for JavaScript scene apps in compiled scenes through a new runtime import path.
  • Added a two-step system template API: repository listings now include scenesUrl, and scene JSON is fetched separately when needed.
  • Added date input rendering in the frame runtime control page.

Bug fixes

  • Fixed frame settings comparisons so numeric fields edited in the UI no longer appear as unsaved changes after saving.
  • Fixed tooltip positioning so large popovers, including JSON output examples, stay within the viewport.
  • Fixed a runtime/device crash risk in JavaScript app support when Nim stack traces are enabled.
  • Fixed AI scene features on installs where analytics is not configured.
  • Improved JSON viewer loading compatibility in the UI debug panel and node output tooltips.

Maintenance

  • Added backend and frame runtime tests for the new system template scenes.json endpoints and access control.
  • Added visual and generated-scene coverage for the new weather scenes.
  • Added frontend visual tests for tooltip behavior, diagram node width, and responsive workspace layouts.
  • Refactored shared JSON viewer loading into a frontend utility.
  • Updated visual snapshots for workspace, frame overview, scenes, and apps drawer UI changes.

Docker images

FrameOS 2026.7.1

Choose a tag to compare

@github-actions github-actions released this 03 Jul 20:34

New features

  • No notable changes were found for this category.

Bug fixes

  • Deployment/backend: Asset folder setup is now best-effort, so deploys no longer fail when an assets partition rejects chown/chmod, such as vfat, exfat, or msdos filesystems.
  • Deployment/backend: FrameOS now attempts to remount a read-only assets partition as read-write before preparing asset folders, and skips font sync with a warning if the assets path is still not writable.
  • Deployment/backend: Asset paths with spaces are now safely quoted during remote setup.
  • Runtime/device: Images decoded directly into a target now respect the frame scaling mode (cover, contain, or stretch) on embedded builds, preserving the intended aspect behavior.
  • Runtime/device: Host-side data-URL image downloads with a target now keep their native size so later placement can crop or fit them correctly.
  • Runtime/device: FrameOS Gallery downloads now pass the frame’s scaling mode through to image decoding.

Maintenance

  • Added backend tests for asset folder setup, writable detection, font sync skipping, and path quoting.
  • Added runtime tests for image download target behavior, data-URL fitting, scaling-mode mapping, and gallery download parameters.

Docker images

FrameOS 2026.7.0

Choose a tag to compare

@github-actions github-actions released this 02 Jul 11:08

New features

  • Added new data apps for Google Photos shared albums and Immich photo libraries, including sample scenes.
  • Added a new Chart render app, with a sample scene for displaying charts on frames.
  • Added a new Zoom/Pan render app for Ken Burns-style image movement, with a sample slideshow scene.
  • Added conditional showIf field support in scene/app configuration, including a UI editor for defining when fields are shown.
  • Downloaded image metadata can now include parsed JPEG EXIF details and a one-line EXIF summary for use in scene state.
  • Embedded frames can now receive Immich settings through the embedded settings API.

Bug fixes

  • Embedded boot logs no longer overwrite a configured hostname such as frame.local with the device’s current IP address; IP-based frame hosts still update when the IP changes.
  • Reduced noisy reboot markers in metrics so routine log activity is less likely to appear as device reboots.
  • Improved memory-bounded image decoding for large images and screenshots, helping reduce render failures on memory-constrained devices.
  • Fixed the Nim runtime build flag so Linux/Raspberry Pi renders use the intended malloc behavior and can reclaim render memory more reliably.
  • Improved ESP32 fast-deploy error reporting by including device status context such as firmware version, storage, memory, and loaded scene counts when uploads fail.
  • Improved ESP32 image handling so Wikimedia Commons images preserve aspect ratio before render placement.

Maintenance

  • Updated ESP32 firmware build configuration and compatibility checks, including flash/PSRAM layout reporting and additional SDK configuration defaults.
  • Added tests for the new Google Photos, Immich, Chart, and Zoom/Pan apps.
  • Added test coverage for EXIF parsing, conditional field visibility, interpreter cache behavior, and ESP32-compatible sample scenes.
  • Updated frontend visual snapshots for settings, scene editing, app drawer, and workspace changes.
  • Added build tooling support for using a local Pixie checkout during development.

Docker images

FrameOS 2026.6.30

Choose a tag to compare

@github-actions github-actions released this 01 Jul 01:41

New features

  • Added a selectable Waveshare 7.3" RPi Zero PhotoPainter frame profile in the UI and device catalog, using the Waveshare EPD_7in3e driver with 800x480 dimensions.
  • Backend/API device defaults now include PhotoPainter GPIO pin mappings and known GPIO button defaults for supported devices, reducing manual frame configuration.
  • Runtime setup and driver selection now recognize the PhotoPainter device profile and load the matching Waveshare driver.

Bug fixes

  • Corrected the embedded Waveshare ESP32-S3 ePaper 13.3E6 display and SD-card GPIO defaults so firmware builds use the vendor pinout.
  • Fixed generated/shared driver context handling so display pin overrides are passed through to device drivers.
  • Runtime config now accepts both sclk and sck pin names for SPI clock overrides.
  • Switching away from the PhotoPainter profile now removes profile-only pin defaults while preserving explicit custom overrides.

Maintenance

  • Added and updated tests for PhotoPainter profiles, device defaults, embedded presets, driver generation, frame API behavior, and setup scripts.
  • Updated release-driver generation to map custom Waveshare device IDs to their underlying driver variants.
  • Updated release metadata for FrameOS 2026.6.30.

Docker images

FrameOS 2026.6.29

Choose a tag to compare

@github-actions github-actions released this 30 Jun 00:10

New features

  • Scene editor now supports creating and editing custom events, including typed payload fields, directly from the Events panel.
  • Custom events are now included in scene sync/deploy comparisons, so backend and frame-side scene differences report changes to custom event definitions.
  • Scene code generation now uses custom event schemas when dispatching events, preserving configured payload field types.
  • Runtime diagnostics now carry the original diagram node ID for JavaScript errors, helping the UI point operators to the node that caused the failure.
  • ESP32 embedded frames using the Waveshare ESP32-S3 PhotoPainter preset now get the correct 7.3" e-paper device, GPIO buttons for BOOT and KEY1, and PhotoPainter-specific display power handling.

Bug fixes

  • Event nodes now filter incoming payloads by their configured fields for interpreted scenes, not only by legacy button labels.
  • Compiled scene event listeners now generate payload filters from event node configuration, improving consistency with interpreted scenes.
  • Frame sync diffs now account for custom event definitions instead of ignoring them.
  • Backend frame request forwarding for JSON requests now uses the bounded frame HTTP path, keeping response handling consistent with other frame API calls.
  • Embedded error rendering no longer depends on font rendering on ESP32; devices now show a simple visible error marker instead.
  • Waveshare 7.3" e-paper handling now includes safer reset timing, bounded BUSY waits, and faster bulk framebuffer transfer to avoid stuck or slow refreshes.
  • Linux framebuffer rendering now reuses its render buffer between frames, reducing allocation pressure during repeated renders.

Maintenance

  • Updated ESP32 firmware build metadata and partition layout handling, including 16MB/32MB OTA layout coverage in tests.
  • Added tests for custom event code generation, event payload filtering, runtime error node mapping, frame sync behavior, embedded firmware defaults, and setup script behavior.
  • Refactored scene field editing UI into a reusable field definition form.
  • Updated ESP32 documentation, SDK defaults, and display component wiring for the new PhotoPainter support.
  • The setup/bootstrap scripts now explicitly require awk before continuing.

Docker images

FrameOS 2026.6.28

Choose a tag to compare

@github-actions github-actions released this 29 Jun 09:04

New features

  • Added on-frame upgrade support: FrameOS now includes an upgrade command, and the frame settings UI exposes admin upgrade controls with dry-run support.
  • Added on-frame admin template/repository support so frame-admin can serve bundled scene templates and repository data directly from the device.
  • Added backend/API sync hints on frame list and detail responses, helping the UI show whether a frame has changes that differ from the last deployed revision.
  • Added runtime commands for display-driver setup and setup reboots, including driver-setup and --reboot-if-required.

Bug fixes

  • Fixed Buildroot first-boot setup so the setup hotspot and FrameOS service start reliably on release images without preconfigured Wi-Fi credentials.
  • Fixed Buildroot NetworkManager connection handling by using the correct secure permissions and persistent state-backed connection storage.
  • Fixed remote frame HTTP responses containing non-ASCII text by decoding remote text as UTF-8.
  • Fixed the Waveshare 12.48" B V2 driver binding to compile the correct C source file.
  • Fixed snapshot/preview-related UI regressions covered by updated visual snapshots.

Maintenance

  • Expanded Buildroot image tooling and tests for service setup, persistent NetworkManager paths, image composition tools, and release image behavior.
  • Updated generated driver registries to expose available driver names for runtime/admin use.
  • Improved deployment source packaging to include shared frontend public assets and bundled scene repository files.
  • Updated asset preparation to track bundled repository scenes and regenerate embedded asset modules when they change.
  • Added and updated backend, runtime, and frontend tests for frame sync hints, remote HTTP handling, upgrades, setup behavior, driver generation, and visual UI coverage.

Docker images