Releases: FrameOS/frameos
Releases · FrameOS/frameos
FrameOS 2026.6.9
New features
- Added build environment selection for FrameOS builds, including local builds, SSH build hosts, Modal sandboxes, and an option to disable server-side builds when using precompiled Buildroot SD images.
- Added backend/API probes for build environments: operators can test an SSH build host for Docker/Buildx support and test Modal sandbox credentials/tooling before starting builds.
- Added Docker availability to the system info API and settings UI so operators can see whether the Docker CLI and daemon are available on the FrameOS server.
- Added support for preparing compatible precompiled Buildroot SD card images without requiring Docker or a configured build executor.
- Added a standalone
scripts/frameos-setup.shinstaller for deployment/setup workflows outside the main application container. - Added a native FrameOS JavaScript transpiler/runtime path for device builds, replacing the previous bundled frontend transpiler asset.
Bug fixes
- Buildroot SD image jobs now detect stale queued/running work using heartbeats and can recover instead of leaving frames stuck in a stale build state.
- Buildroot SD image status can still report usable precompiled image state when resolving the Buildroot base image metadata fails.
- Buildroot frame binary builds now disable on-device fallback when composing SD images, avoiding invalid fallback behavior during image generation.
- Removed the external
liblgpioruntime/build dependency for native GPIO-based drivers, reducing deployment failures on systems whereliblgpio-devis unavailable. - Waveshare build archives now include the required GPIO header when needed, fixing native driver compilation packaging.
- Agent cross-compilation now respects the selected build environment and reports clearer failures when a configured executor cannot support the target architecture.
Maintenance
- Updated QuickJS to the 2026-06-04 source release across Docker builds, deployment helpers, and test targets.
- Refactored build execution into shared local, SSH build host, and Modal sandbox executors.
- Refreshed cross-toolchain image configuration and CI coverage for cross-compilation workflows.
- Added and expanded tests for build environments, Modal sandboxes, Buildroot SD images, deploy planning, the setup script, native JS transpilation, and GPIO bindings.
- Reduced default Buildroot FrameOS/assets partition sizes and added data partition headroom logic for generated SD images.
Docker images
FrameOS 2026.6.8
New features
- Added per-frame timezone update settings across the UI, backend/API, and device runtime, including enable/disable, update hour, and update URL.
- Buildroot SD image generation can now customize precompiled full SD images, reducing the need for local FrameOS and agent builds when a matching image is available.
- Buildroot images now include first-boot SD card expansion support, so the device can grow its partitions after being written to a larger card.
- Deploy and fast-deploy tasks can now use stable task IDs, with start, completion, and failure markers in frame logs for better UI progress tracking.
- Frame boot reports now include timezone update configuration, and the backend can learn a frame’s timezone from boot logs when no timezone is already stored.
Bug fixes
- Frame image previews now return a rendered error PNG when a refresh fails and no cached image is available, instead of returning a JSON error response.
- Explicit timezones are now preserved for Raspberry Pi OS frames instead of being omitted from generated frame configuration.
- Stored timezone handling now accepts safe custom timezone names while still rejecting unsafe paths and malformed values.
- The FrameOS agent now closes its internal HTTP client after proxied HTTP commands, preventing connection/resource leaks.
- RTSP snapshot capture now streams ffmpeg output through a managed process with timeout and output-size limits, improving reliability and cleanup.
- Metrics logging now records a metrics error sample instead of letting a metrics collection exception stop the loop.
Maintenance
- Added database migration support for the new per-frame timezone updater configuration.
- Added backend tests for timezone handling, deploy task IDs, frame image error responses, Buildroot SD image behavior, and local command logging.
- Added runtime process utility tests and updated metrics/timezone updater tests.
- Updated Buildroot image tooling, manifests, and documentation for the newer SD image customization flow.
- Refined frontend visual snapshots for the updated frame settings, metrics, workspace, and global settings screens.
Docker images
FrameOS 2026.6.7
New features
- UI: workspace frame cards now show metric alert indicators and fetch lightweight recent metrics previews for faster status checks.
- Backend/API: added
GET /frames/{id}/metrics/recentwithlimitandsincefilters for efficient recent metric loading. - Runtime/device: metrics now report CPU core count and include a per-boot runtime ID, helping operators distinguish data across device reboots.
- Runtime/device: FrameOS now starts a timezone updater so configured timezone changes can be applied while the device is running.
- Deployment: release automation now builds a Raspberry Pi Zero 2 W Buildroot SD image artifact, including metadata, for easier first-time installation.
Bug fixes
- Deployment: fixed Buildroot release image Docker mount handling so release image composition can find downloaded prebuilt artifacts correctly.
- Deployment/runtime: Buildroot devices now prefer the active
/boot/config.txtwhen applying boot config changes, avoiding writes to the Raspberry Pi OS firmware config path. - Deployment: cross-compilation now uses safer Docker base image selection, including canonical Ubuntu codenames, fallback defaults for invalid detected releases, and the correct Buildroot toolchain base.
- Backend/API: metrics are now returned as stored without adding synthetic reboot marker annotations, while preserving runtime boot IDs.
- Runtime/device: Buildroot systemd service setup now supports console logging and can install the packaged service file when present.
- Runtime/device: Buildroot image boot config now reserves less GPU memory by default, returning more RAM to Linux/userland.
Maintenance
- Added tests for recent metrics, metric boot IDs, Buildroot release image generation, boot config detection, timezone updating, cross-compilation image selection, and deployment planning.
- Updated Buildroot image tooling and documentation for release-image generation.
- Updated visual regression snapshots for the frame debug UI.
- Improved release workflow ordering so multi-arch image publishing waits for Buildroot release image generation.
Docker images
FrameOS 2026.6.6
New features
- Added the first backend/API foundation for multiple projects: frames, settings, assets, fonts, templates, repositories, chats, logs, metrics, scene images, and AI tools are now scoped to a project.
- Added project listing and lookup APIs, with default project creation for existing single-user installs and Home Assistant ingress installs.
- Updated deployment/bootstrap flows to be project-aware, including generated frame bootstrap URLs and project-scoped frame access.
- Updated the frontend to load project context and route API calls through the selected project.
- Added Home Assistant ingress routing support for project-aware frontend navigation.
Bug fixes
- Fixed frame workspace actions by moving them into a dedicated actions menu so frame operations remain available and correctly wired from the workspace UI.
- Fixed runtime/device HTTP limit handling across FrameOS HTTP downloads/uploads and data apps, improving reliability for larger images and URL-based assets.
- Fixed project isolation for shared resources so assets, fonts, templates, repositories, chats, scene images, settings, and frame lookups no longer leak across projects.
- Fixed frame image, state, and uploaded-scene cache keys to use frame IDs, reducing collisions between frames with similar network settings.
- Improved AI scene/app chat error handling for missing or inaccessible configured models, returning clearer operator-facing guidance.
- Fixed Home Assistant ingress authentication behavior for project-scoped APIs and websocket access.
Maintenance
- Added database migrations for organizations, projects, memberships, and project IDs on existing FrameOS data.
- Removed legacy stored AI embedding models/endpoints and replaced scene context building with a catalog-based backend utility.
- Added multitenancy migration and API test coverage across frames, repositories, templates, settings, logs, metrics, and websockets.
- Updated frontend visual snapshots and E2E seed data for the project-aware UI.
- Added explicit Monaco editor worker configuration for the frontend build.
- Updated CI workflows for buildroot/cross-toolchain image publishing and to avoid unnecessary test runs on digest-only updates.
Docker images
FrameOS 2026.6.5
New features
- Added a per-frame “Maximum HTTP response size for JavaScript apps” setting in Frame Settings, used by
frameos.fetchTextandframeos.fetchJsonfor larger feeds or API responses. - Exposed the HTTP response size limit through the backend API and device runtime configuration, with a default of 64 MiB.
- Added a “Scene settings” action to the workspace scene dropdown for quicker access to scene configuration.
Bug fixes
- Fixed rotated frame preview placeholders so “no image” placeholders use the correct rotated dimensions.
- Improved frame image loading so the UI detects initial placeholder images and requests a fresh image once instead of leaving stale “no image” previews visible.
- Avoided unnecessary image refresh work for cache-check
HEADrequests when no cached image exists. - Fixed shared compiled scene bundle initialization by setting host callbacks directly, improving reliability for shared-scene deployments.
Maintenance
- Added a database migration and schema coverage for the new frame HTTP response size limit.
- Expanded backend, runtime, and code generation tests around image placeholders, frame config, server API payloads, and shared scene bundles.
- Updated visual regression snapshots for frame debug and settings screens.
- Updated the bundled app metadata after reordering the “Set as state” app fields.
Docker images
FrameOS 2026.6.4
New features
- Added a frame-level image engine setting, allowing FrameOS operators to choose Pixie/default rendering or ImageMagick where supported.
- Exposed the configured/effective image engine through frame configuration, device startup logs, and the frame API.
- Added ImageMagick support to Buildroot images and included FFmpeg/FFprobe libraries for richer runtime media handling.
- Increased the Buildroot FrameOS partition default size to 1 GB to allow more room for runtime files and deployments.
- Consolidated the FrameOS setup/deploy flow so setup JSON handling uses the runtime
frameos setup --with-setuppath.
Bug fixes
- Fixed deploy planning so detected device OS can update the frame deployment mode between Raspberry Pi OS and Buildroot, including resetting the SSH user from
rootback topiwhen appropriate. - Fixed Buildroot full deploy planning to avoid Raspberry Pi OS package-install assumptions such as remote
apthandling. - Fixed deploy plan previews so mode and SSH user changes discovered during planning are persisted back to the frame when needed.
- Fixed precompiled FrameOS deployments to skip unnecessary local source preparation and modification steps.
- Improved SVG rendering by using the new image decoding fallback path instead of requiring ImageMagick-only SVG rendering.
- Scene generation now fails clearly when a referenced child scene is missing instead of silently logging and stopping generation.
Maintenance
- Added a database migration for the new
image_engineframe setting. - Updated frontend frame settings and deploy-plan UI snapshots for the new deployment and image-engine behavior.
- Expanded backend and runtime tests for deploy planning, Buildroot image configuration, setup handling, frame serialization, and image utilities.
- Updated Nim package dependencies used by the FrameOS runtime and app editing context.
- Refreshed Buildroot image tooling, manifest data, and boot logo assets.
Docker images
FrameOS 2026.6.3
New features
- Added a Buildroot-based installation path for supported Raspberry Pi targets, including Raspberry Pi Zero 2 W, with backend SD-image generation, network/Wi-Fi defaults, boot logo customization, and UI install/deploy flow support.
- Added a new frame bootstrap flow that generates a
curl | sudo shcommand to install FrameOS and the FrameOS agent as systemd services, with token regeneration and Home Assistant ingress/forwarded URL handling. - Added per-frame timezone support, including a global default timezone setting and bundled runtime timezone data.
- Added a
shared-scenescompilation mode for deployments that package compiled scenes as shared libraries. - Frame creation now fills in known display dimensions for many Pimoroni Inky, HyperPixel, and Waveshare devices.
Bug fixes
- Fixed timezone alias handling so aliases are preserved alongside canonical timezone data and existing timezone selections are not dropped.
- Fixed release driver setup generation so shared/precompiled driver artifacts include the expected setup helpers.
- Fixed release agent setup generation paths used by deployment tooling.
- Buildroot SD-image deploy state is now updated when a frame reports bootup, so successful deploy tracking reflects the booted image.
- Improved frame state/image refresh coordination to reduce duplicate refreshes and back off after failed state refresh attempts.
Maintenance
- Added E2E installation coverage, including real Buildroot SD-image and FrameOS runtime tests.
- Split visual regression tests into shards and changed snapshot updates to be collected and committed after shard completion.
- Added workflows and tooling for publishing Buildroot and cross-toolchain container images.
- Added automated timezone data sync and validation.
- Updated Docker runtime dependencies needed for image generation and device deployment tooling.
Docker images
FrameOS 2026.6.2
New features
- Added configurable frame error behavior in the UI, backend/API, and runtime: operators can choose safe mode, show-error-and-retry, or silent retry modes with retry timing settings.
- Added native Nim driver support for many Pimoroni Inky displays, including Inky Impression, Inky pHAT, and Inky wHAT variants, with PNG rendering support where applicable.
- Added a native
pimoroni.hyperpixel2r_nativedriver path usinglgpio, while keeping existingpimoroni.hyperpixel2rconfigs on the legacy framebuffer-based driver. - Added deployment/prebuilt target support for Ubuntu 26.04 / resolute.
- Added a shared frame connection status dot component in the UI for clearer frame connectivity indicators.
Bug fixes
- Fixed Waveshare
EPD_5in83_V2handling to use the four-gray initialization and display path instead of treating it as black-only. - Improved Raspberry Pi OS sudo failure guidance during deploys with the exact
raspi-configmenu path for disabling the Admin Password requirement. - Preserved legacy HyperPixel 2r deployments by separating the old Python/vendor-backed framebuffer driver from the new native driver.
- Normalized and migrated frame error behavior settings, including legacy silent retry window fields, to avoid invalid or missing runtime configuration.
Maintenance
- Expanded tests for device driver selection, frame error behavior normalization, deploy planning, cross-compilation targets, and release driver generation.
- Updated prebuilt dependency tooling and manifests for
lgpioand Ubuntu 26.04 targets. - Updated frontend visual snapshots for the changed frame settings, debug, and workspace UI.
- Added release workflow automation for posting published release notifications.
- Updated bundled Inky Python requirements and related vendor setup tests.
Docker images
FrameOS 2026.6.1
New features
- Added an agent bootstrap flow: the backend/API and UI can generate a tokenized
curl | sudo shcommand that installs a precompiled FrameOS agent and writes the frame’s agent configuration. - Added selectable agent task transport for deploy and restart operations (
auto,agent, orssh), allowing agent-managed frames to deploy and restart without relying on SSH. - Added frame mountpoint configuration for Samba/CIFS shares, with backend storage/API support, deployment planning for
cifs-utils, and runtime/device support for mounting configured shares. - Added refreshed FrameOS logo assets and related UI updates across the workspace and frame screens.
Bug fixes
- Agent deploys are more robust: binaries are uploaded compressed, verified with SHA-256 before activation, staged releases are checked, and deploys wait for the restarted agent to come back.
- Restarting the agent through the agent transport now uses a delayed systemd restart command so the restart can complete without killing the active command connection too early.
- Deployments using the agent transport now skip SSH
authorized_keysinstallation and use the current remote user for the runtime service instead of assuming the configured SSH user. - Agent bootstrap URLs now respect forwarded host/protocol information and ingress paths, improving operation behind proxies and Home Assistant ingress.
- Remote command execution now validates the requested transport and gives clearer failures when agent transport is forced but unavailable.
Maintenance
- Added database migrations for frame mountpoints and scene execution mode defaults.
- Expanded backend tests for frame APIs, agent bootstrap/deploy/restart flows, remote execution, terminal websockets, and deployment planning.
- Expanded runtime/device tests for configuration, setup, runner loop behavior, server APIs, and web routes.
- Sharded frontend visual regression tests in CI and updated visual snapshots for the UI changes.
Docker images
FrameOS 2026.6.0
New features
- Major UI redesign with a new FrameOS shell, redesigned login/signup screens, frame home, frame dashboard, and dedicated frame, scene, and app workspaces.
- Added new workspace drawers and indicators for deploy plans, unsaved frame changes, live frame status, and frame change status.
- Added long-running task toasts so deploys, uploads, and other background work can surface progress and results in the UI.
- Added local account management for non-Home Assistant installs, including API and settings support for viewing the current user, changing email, and changing password.
- Added persistent terminal session UI support for frame terminals.
- Added cached backend responses for frame assets and frame state, with cache status metadata returned to the UI.
- Added active scene information to frame API responses for easier dashboard and workspace state display.
Bug fixes
- Fixed frame “last activity” timestamps so backend connection attempts, SSH noise, and image fetch failures no longer make a frame look recently active.
- Improved scene image serving by adding private cache headers and generating thumbnails only when thumbnail images are requested.
- Fixed Home Assistant ingress path handling by normalizing Supervisor-provided paths and honoring the
x-ingress-pathheader when serving the frontend. - Disabled local account-management endpoints when running under Home Assistant modes, where authentication is handled externally.
- Improved agent deployment and restart logging so missing frames and command failures are recorded in frame logs.
- Fixed the runtime
frameos setupcommand to exit successfully after setup completes without requiring a reboot.
Maintenance
- Added frontend end-to-end and visual regression coverage for the redesigned UI across light/dark themes and multiple viewport sizes.
- Expanded backend tests for account management, ingress behavior, frame activity timestamps, frame asset caching, and log handling.
- Expanded CI to run the new frontend visual regression suite and upload reports.
- Updated release automation and cross-build validation for generated release artifacts.
- Refreshed frontend dependencies and shared UI/theme utilities to support the redesign.