Add support for async OS updates
This release is the first step to migrating the supervisor to a new codebase. It introduces a new service core-next that acts as a proxy between the existing balena_supervisor container (the core service), the balena API and other containers. This service will slowly take the supervisor responsibilities until the old service can be replaced entirely.
The new service is written in Rust for better memory safety and lower resource usage (should use around 5mb of memory). It is just a regular container, and doesn't require any special host privileges or host networking access. To get around the need for special permissions, a second container service-relay is included with this release. That service is just a relay of requests to a Unix domain socket where the main service listens for requests.
The new service also provides a long requested feature for the on-device agent service. The ability to perform OS updates without the need of Cloudlink access (async OS updates). Devices can now be pinned to a new target OS release and the agent will receive the new OS release through the target state on the next poll and install the new release as it would do with any other app and wait until locks are cleared in order to boot to the new OS. The service keeps track of failed attempts to abort the process after a certain number of tries.
List of commits
a7ed71f (Remove the uninstall of helios overrides, 2026-06-03)
cedf0c6 (Add core-next and service-relay services to composition., 2026-06-03)
ea87039 (Allow to configure logging per service with BALENA_LOGS_LEVEL env var, 2026-06-04)