Skip to content

Latest commit

 

History

History
1053 lines (750 loc) · 30.5 KB

CHANGELOG.md

File metadata and controls

1053 lines (750 loc) · 30.5 KB

Changelog

All notable changes to this project will be documented in this file automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY! This project adheres to Semantic Versioning.

v0.29.6

(2026-10-21)

  • Re-create services when depends_on changes [Felipe Lalanne]

v0.29.5

(2026-10-21)

  • Use patched ca-certificates to remove eMudhra intermediate CAs [Felipe Lalanne]

v0.29.4

(2026-10-20)

  • Remove config from oci and state image models [Felipe Lalanne]
  • Use target service image when migrating a service [Felipe Lalanne]
  • Implement generic field tracking [Felipe Lalanne]
  • Keep non-finite numbers as strings when parsing environment values [Felipe Lalanne]
  • Make ContainerConfig::cgroup an Option [Felipe Lalanne]

v0.29.3

(2026-10-08)

  • Handle default bridge network_mode on podman [Felipe Lalanne]
  • Add support for compose service pid configuration [Felipe Lalanne]
  • Add Bridge network mode variant [Felipe Lalanne]
  • Only read network mode label for the service case [Felipe Lalanne]
  • Add support for compose Services ipc property [Felipe Lalanne]

v0.29.2

(2026-10-07)

  • Accept services.mac_address compose property [Felipe Lalanne]

v0.29.1

(2026-10-05)

  • Make network_mode service force a required and restart dependency [Felipe Lalanne]
  • Use restart:true to determine if a dependency can migrate [Felipe Lalanne]
  • Re-create dependents when their dependency is reconfigured [Felipe Lalanne]
  • Create services in dependency order [Felipe Lalanne]
  • Update mahler to 0.27.1 [Felipe Lalanne]

v0.29.0

(2026-10-05)

  • Return error on trigger_poll on input failure [Felipe Lalanne]

v0.28.3

(2026-10-05)

  • Use hickory DNS resolver on requests to the remote backend [Felipe Lalanne]

v0.28.2

(2026-10-01)

  • Update flowzone config [Felipe Lalanne]

v0.28.1

(2026-09-30)

  • Add support for legacy volumes [Felipe Lalanne]
  • Record volumes mounted by containers as external on read [Felipe Lalanne]
  • Keep external volume mount sources out of the app namespace [Felipe Lalanne]
  • Add an external variant to the volume model [Felipe Lalanne]
  • Add unsupervised volumes to Device model [Felipe Lalanne]

v0.28.0

(2026-09-30)

  • docker-compose.test.yml: contain failures and optimize [Alex Gonzalez]
  • Extend README with hostapp extensions section [Alex Gonzalez]
  • balenahup: decline a release with overlays on a pre-extension host [Alex Gonzalez]
  • seek: let a forced request interrupt a running apply [Alex Gonzalez]
  • balenahup: remove a release's overlays when the release is forgotten [Alex Gonzalez]
  • balenahup: reboot to apply an overlay removal [Alex Gonzalez]
  • remote: report hostapp overlay extensions as services [Alex Gonzalez]
  • balenahup: authenticate the updater image pull [Alex Gonzalez]
  • test: deploy multiple overlays through integration test HUP [Alex Gonzalez]
  • balenahup: defer host updates while a rollback validation is in progress [Alex Gonzalez]
  • util: query systemd unit activation status [Alex Gonzalez]
  • test: assert the planner defers host work while a HUP is in progress [Alex Gonzalez]
  • test: assert helios stages with --no-reboot and issues the reboot [Alex Gonzalez]
  • test: assert the planner deploys overlays before installing the hostapp [Alex Gonzalez]
  • test: assert the planner reboots to activate a staged host OS release [Alex Gonzalez]
  • balenahup: helios issues the coordinated reboot [Alex Gonzalez]
  • util: add update-lock discovery and ownership queries [Alex Gonzalez]
  • util: add systemd reboot() via logind [Alex Gonzalez]
  • test: deploy an overlay in the dind HUP integration test [Alex Gonzalez]
  • balenahup: add hostapp overlay extensions [Alex Gonzalez]
  • oci: read a created container with an exit code as failed [Alex Gonzalez]
  • seek: re-read the device state between failed retries [Alex Gonzalez]
  • remote-model: parse hostapp overlay services into the target [Alex Gonzalez]
  • balenahup: nest the hostapp component under HostRelease [Alex Gonzalez]
  • util: add boot_id() reading from /proc/sys/kernel/random/boot_id [Alex Gonzalez]

v0.27.0

(2026-09-30)

  • Recreate the dependents of a replaced namespace target [Christina Ying Wang]
  • Support network_mode service references [Christina Ying Wang]

v0.26.11

(2026-09-28)

  • Show differences in cur/tgt state in start_service and finish_release [Felipe Lalanne]
  • Add field tracking for ulimits [Felipe Lalanne]

v0.26.10

(2026-09-25)

  • Store container volumes in a BTreeSet to ensure stable order [Felipe Lalanne]
  • Parse Volumes from HostConfig.Binds [Felipe Lalanne]

v0.26.9

(2026-09-24)

  • Allow bind mounts on /tmp [Felipe Lalanne]

v0.26.8

(2026-09-22)

  • Bound the health await by the healthcheck config [Christina Ying Wang]
  • Wait on optional depends_on entries until they resolve [Christina Ying Wang]

v0.26.7

(2026-09-10)

  • Wait on engine events instead of polling the container [Christina Ying Wang]

v0.26.6

(2026-08-31)

  • Do not fail planning if a condition is not met [Felipe Lalanne]
  • Only add the "prepare release" step for new service or a re-configuration [Felipe Lalanne]

v0.26.5

(2026-08-27)

  • Fold container exit code into ContainerStatus::Stopped [Christina Ying Wang]

v0.26.4

(2026-08-26)

  • Update alpine to 3.24 and the rust-version to 1.96 [Felipe Lalanne]
  • Update mahler to v0.26.0 [Felipe Lalanne]

v0.26.3

(2026-08-24)

  • Allow using a local socket as the takeover host-override arg [Felipe Lalanne]

v0.26.2

(2026-08-18)

  • Remove unnecessary derives in helios-remote-model [Felipe Lalanne]

v0.26.1

(2026-08-18)

  • Do not log error for cancelled poll [Felipe Lalanne]

v0.26.0

(2026-08-13)

  • Reject depends_on cycles and unknown references [Christina Ying Wang]
  • Fail fast when an awaited dependency cannot satisfy its condition [Christina Ying Wang]
  • Await service_healthy and service_completed_successfully dependencies [Christina Ying Wang]
  • Gate service start on service_started dependencies [Christina Ying Wang]
  • Surface container health status [Christina Ying Wang]
  • Wire depends_on config into remote and state models [Christina Ying Wang]
  • Capture container exit_code on ContainerState [Christina Ying Wang]

v0.25.28

(2026-08-04)

  • Avoid spurious restarts on helios takeover exec error [Felipe Lalanne]

v0.25.27

(2026-07-29)

  • Add support for service.annotations compose field [Felipe Lalanne]

v0.25.26

(2026-07-29)

  • Set a flag to make sure a supervisor restart happens on takeover [Felipe Lalanne]
  • Avoid cancelling an ongoing apply on a cached state [Felipe Lalanne]
  • Terminate the process on a failed trigger legacy update [Felipe Lalanne]
  • Improve takeover log messages [Felipe Lalanne]
  • Write both takeover endpoint and port overrides on the same transaction [Felipe Lalanne]
  • Validate the takeover API override to be a URI [Felipe Lalanne]

v0.25.25

(2026-07-27)

  • Assume /tmp is host runtime dir [Felipe Lalanne]

v0.25.24

(2026-07-24)

  • Log API failures as warnings [Felipe Lalanne]

v0.25.23

(2026-07-24)

  • Add support for services.tmpfs compose field [Felipe Lalanne]
  • Add support for service.ulimits compose field [Felipe Lalanne]
  • Add support for service.device_cgroup_rules compose field [Felipe Lalanne]
  • Add support for service.devices compose property [Felipe Lalanne]

v0.25.22

(2026-07-20)

  • Store published ports as a sorted Vec instead of a BTreeSet [Felipe Lalanne]

v0.25.21

(2026-07-15)

  • Fix hostapp filtering [Felipe Lalanne]

v0.25.20

(2026-07-15)

  • Make the default log level to debug [Felipe Lalanne]
  • Make the read_state instrumentation level to trace [Felipe Lalanne]
  • Log response status code for get/patch requests [Felipe Lalanne]

v0.25.19

(2026-07-13)

  • Expand port ranges to work with both Docker and Podman [Felipe Lalanne]

v0.25.18

(2026-07-10)

  • Send WARN level errors to stdout [Felipe Lalanne]
  • Make release rejection notice into an error [Felipe Lalanne]
  • Make the host removal exception message less cryptic [Felipe Lalanne]
  • Include release uuid in rejection warning [Felipe Lalanne]

v0.25.17

(2026-07-09)

  • Add support for group_add compose property [Felipe Lalanne]
  • Add support for sysctls compose property [Felipe Lalanne]
  • Add support for security_opt compose property [Felipe Lalanne]
  • Add support for cap_add and cap_drop compose properties [Felipe Lalanne]

v0.25.16

(2026-07-08)

  • Make at most 3 HUP attempts before aborting [Felipe Lalanne]

v0.25.15

(2026-06-24)

  • Add support for compose service entrypoint [Felipe Lalanne]

v0.25.14

(2026-06-23)

  • Add support for dns, dns_opt and dns_search compose fields [Felipe Lalanne]

v0.25.13

(2026-06-19)

  • Add an integration test for port publishing [Felipe Lalanne]
  • Expose ports on the OCI engine [Felipe Lalanne]
  • Accept compose ports from the target state [Felipe Lalanne]

v0.25.12

(2026-06-10)

  • Normalize on-failure restart policy with no retry count [Christina Ying Wang]

v0.25.11

(2026-06-10)

  • Remove the top level logging span [Felipe Lalanne]
  • Configure logs output by level [Felipe Lalanne]

v0.25.10

(2026-06-09)

  • Move supervisor takeover code to Rust [Felipe Lalanne]
  • Add systemd tools to start/stop units and reload daemon [Felipe Lalanne]
  • Remove unnecessary features and optimize release build [Felipe Lalanne]

v0.25.9

(2026-06-01)

  • Parse Compose byte values using parse-size [Christina Ying Wang]

v0.25.8

(2026-05-29)

  • Parse Compose duration strings using go-parse-duration [Christina Ying Wang]

v0.25.7

(2026-05-28)

  • Support service.extra_hosts [Christina Ying Wang]

v0.25.6

(2026-05-27)

  • Update integration tests [Felipe Lalanne]
  • Report rejected releases to remote backend [Felipe Lalanne]
  • Update app tasks to set the rejected_release property [Felipe Lalanne]
  • Validate target apps independently on helios-remote-model [Felipe Lalanne]
  • Do not update app authorization list on local state [Felipe Lalanne]
  • Remove Clone from helios-remote-model types [Felipe Lalanne]

v0.25.5

(2026-05-27)

  • Make LockSet::try_lock idempotent [Felipe Lalanne]
  • Flock the directory before force locking [Felipe Lalanne]
  • Allow to force acquire locks [Felipe Lalanne]

v0.25.4

(2026-05-25)

  • Enable run_task log messages [Felipe Lalanne]

v0.25.3

(2026-05-25)

  • Configure HTTP request keep-alive to 59 seconds [Felipe Lalanne]

v0.25.2

(2026-05-22)

  • Set Authorization header for legacy supervisor requests [Felipe Lalanne]
  • Reduce default log level to info [Felipe Lalanne]
  • Re-categorize log messages between info/debug [Felipe Lalanne]

v0.25.1

(2026-05-21)

  • Preserve target image URI when migrating a service [Christina Ying Wang]
  • Add healthcheck support to service composition [Christina Ying Wang]

v0.25.0

(2026-05-18)

  • Add /tmp/balena bind mount to services [Felipe Lalanne]
  • Refactor tasks for readability [Felipe Lalanne]
  • Implement app locking via update locks [Felipe Lalanne]
  • Create helios-util::locking module [Felipe Lalanne]
  • Move HostRuntimeDir to helios-util::types [Felipe Lalanne]
  • Bind mount handling improvements [Felipe Lalanne]
  • Read bind mounts from container host config [Felipe Lalanne]

v0.24.2

(2026-05-14)

  • Add additional poll tests for critical paths [Felipe Lalanne]
  • Fix poll loop after the 24-hour timer is triggered [Felipe Lalanne]

v0.24.1

(2026-05-13)

  • Validate cpus field on helios-remote-model [Felipe Lalanne]
  • Remove some Option properties in container config [Felipe Lalanne]
  • Write a label for service networks.mac_address [Felipe Lalanne]
  • Add missing field tracking [Felipe Lalanne]
  • Read the full container configuration after service start [Felipe Lalanne]

v0.24.0

(2026-05-12)

  • Support numeric compose service fields [Christina Ying Wang]
  • Support String compose service fields [Christina Ying Wang]
  • Support init, privileged, read_only, tty bool fields [Christina Ying Wang]

v0.23.3

(2026-05-11)

  • Fix issue with service migration happenning too early [Felipe Lalanne]
  • Ensure services are removed when removing linked volumes [Felipe Lalanne]
  • Ensure services are removed when removing networks [Felipe Lalanne]
  • Test removal of services with changing networks [Felipe Lalanne]
  • Small tweaks to app tasks [Felipe Lalanne]
  • Test migration of services linking to networks [Felipe Lalanne]
  • Update dependencies [Felipe Lalanne]

v0.23.2

(2026-04-30)

  • Improve error messaging for labels validation [Felipe Lalanne]
  • Improve error messaging for env var validation [Felipe Lalanne]

v0.23.1

(2026-04-29)

  • Add service volumes support [Felipe Lalanne]

v0.23.0

(2026-04-29)

  • Fix bug when pulling multiple services with same image [Felipe Lalanne]
  • Add support for service network_mode [Felipe Lalanne]
  • Add support for Service networks [Felipe Lalanne]

v0.22.7

(2026-04-28)

  • Set default log level to debug [Felipe Lalanne]

v0.22.6

(2026-04-19)

  • Fix supervisor takeover script [Felipe Lalanne]

v0.22.5

(2026-04-01)

  • Re-emit target state every 24 hours [Felipe Lalanne]
  • Make sure to apply local target after legacy apply [Felipe Lalanne]

v0.22.4

(2026-04-01)

  • Fix helios-oci::Volume::create [Felipe Lalanne]

v0.22.3

(2026-03-31)

  • Mask sensitive environment variables in logs [Felipe Lalanne]
  • Add system environment variables to services [Felipe Lalanne]
  • Add environment variable support [Felipe Lalanne]

v0.22.2

(2026-03-30)

  • Use oci::ContainerConfig as the main service config model [Felipe Lalanne]
  • Add support for service restart policy [Felipe Lalanne]

v0.22.1

(2026-03-26)

  • Report progress on every stream event [Felipe Lalanne]

v0.22.0

(2026-03-26)

  • Normalize naming of OCI related model properties [Felipe Lalanne]
  • Look for the network/volume before create [Felipe Lalanne]
  • Use helios-oci namepacing to create volumes [Felipe Lalanne]
  • Use helios-oci namespace to create networks [Felipe Lalanne]
  • Remove container_name from Service model [Felipe Lalanne]
  • Add namespacing to helios-oci containers [Felipe Lalanne]
  • Refactor helios-oci naming [Felipe Lalanne]

v0.21.3

(2026-03-24)

  • Update to mahler v0.25.9 to use the new View::commit feature [Felipe Lalanne]
  • Fix bug with reporting changes while sending [Felipe Lalanne]
  • Fix reporting of unchanged apps [Felipe Lalanne]
  • Add HUP retry integration test [Felipe Lalanne]

v0.21.2

(2026-03-19)

  • Add explicit SIGTERM handling to main process [Felipe Lalanne]

v0.21.1

(2026-03-16)

  • Only report on apps in the target state. [Felipe Lalanne]
  • Report service is installing [Felipe Lalanne]
  • Add downloading/downloaded update statuses [Felipe Lalanne]

v0.21.0

(2026-03-12)

  • Use debugging assertions for integration tests [Felipe Lalanne]
  • Remove DeviceTarget::normalize [Felipe Lalanne]
  • Remove app-uuid from Volume target state [Felipe Lalanne]
  • Remove app-uuid from network target state [Felipe Lalanne]
  • Remove metadata labels from service target state [Felipe Lalanne]
  • Move default network definition to helios-remote-model [Felipe Lalanne]
  • Convert Service::container_name to Option [Felipe Lalanne]
  • Ensure that a finish release always happens on update [Felipe Lalanne]

v0.20.5

(2026-03-11)

  • Fix compilation warnings when userapps feature is disabled [Felipe Lalanne]
  • Refactor balena hostOS update code into helios-balenahup [Felipe Lalanne]

v0.20.4

(2026-03-10)

  • Migrate same-config networks and volumes [Christina Ying Wang]

v0.20.3

(2026-03-09)

  • Reset failed systemd unit before creating a new unit [Felipe Lalanne]
  • Allow balenaOS updater script to reboot after install [Felipe Lalanne]

v0.20.2

(2026-03-09)

  • Report 'downloading' state if service image does not exist yet [Felipe Lalanne]

v0.20.1

(2026-03-04)

  • Add integration tests for API target poll [Felipe Lalanne]
  • Add DELETE app API method to clean up after tests [Felipe Lalanne]

v0.20.0

(2026-03-04)

  • Update docker volume configuration [felipe]
  • Migrate to helios-store [felipe]
  • Add helios-store module [felipe]

v0.19.1

(2026-03-03)

  • Remove the container and image after HUP [felipe]
  • Re-set host app install_attempts after 24 hours [felipe]
  • Report aborted state to the API when operations could not complete [felipe]
  • Group balenahup FS operations with run_async [felipe]
  • Use mahler exceptions to skip HUP when applicable [felipe]

v0.19.0

(2026-03-03)

  • Add worker tests for volume task workflows [Christina Ying Wang]
  • Skip orphaned volume cleanup during state reading [Christina Ying Wang]
  • Add volume tasks, state reading, and enforce-empty checks [Christina Ying Wang]
  • Add state model for volumes and integrate into Release [Christina Ying Wang]
  • Add OCI volume layer with VolumeClient [Christina Ying Wang]
  • Add Volume remote model [Christina Ying Wang]

v0.18.0

(2026-03-02)

  • Store user defined service fields and labels in container [Felipe Lalanne]
  • Store user provided IPAM config subnets on label [felipe]
  • Store user provided ipam options on label [felipe]
  • Use default serialization for networking types [felipe]
  • Remove support for enable_ipv4 [felipe]

v0.17.3

(2026-02-24)

  • Support per-family IPAM labels when custom IPAM config [Christina Ying Wang]

v0.17.2

(2026-02-24)

  • Strip engine-injected network driver_opts on read-back [Christina Ying Wang]
  • Add enable_ipv4 support to network model [Christina Ying Wang]
  • Enforce networks empty before removing release [Christina Ying Wang]

v0.17.1

(2026-02-23)

  • Simplify registry authentication [felipe]

v0.17.0

(2026-02-20)

  • Add a back-off to seek-target retries [felipe]
  • Add support for release updates [felipe]
  • Add migration task and handle a service migration [felipe]
  • Add tasks to rename and re-configure service [felipe]
  • Remove unused images as part of the clean-up step [felipe]

v0.16.4

(2026-02-18)

  • Make container_name a property of Service [felipe]
  • Make OCI error handling more uniform [felipe]
  • Improve type conversions of Service and ServiceConfig models [felipe]
  • Clean-up some type definitions [felipe]

v0.16.3

(2026-02-18)

  • Make NetworkConfig a newtype over OCI NetworkConfig [Christina Ying Wang]
  • Discard engine-assigned IPAM config on network read-back [Christina Ying Wang]
  • Read Docker network state at startup [Christina Ying Wang]
  • Add network Docker client and wire into state IO tasks [Christina Ying Wang]
  • Add network create and remove tasks for planner [Christina Ying Wang]
  • Add network model for remote and state layers [Christina Ying Wang]

v0.16.2

(2026-02-17)

  • Re-try seeking target from the local worker on a runtime error [felipe]
  • Fix issue with new target not being applied [felipe]

v0.16.1

(2026-02-12)

  • Add tasks to uninstall release and apps [felipe]
  • Add task to finalize a release [felipe]
  • Add tasks to remove a service and its image [felipe]
  • Add task to stop a running service [felipe]

v0.16.0

(2026-02-12)

  • Serialize the host status using lowercase [felipe]
  • Add task to start service [felipe]
  • Add container state to service model [felipe]

v0.15.0

(2026-02-10)

  • Add an exception to delete operations on the hostapp [felipe]
  • Use new cleanup hook feature in mahler 0.25 [felipe]
  • Update mahler to v0.25.x [felipe]

v0.14.1

(2026-02-06)

  • Allow device target for local worker to be None [felipe]
  • Fix bug in helios-oci::Image::list() [felipe]
  • Use docker-cli v28 to keep compatibility with balena-engine [felipe]
  • Do not limit image progress reporting to worker [felipe]
  • Only interrupt state patch on channel closing [felipe]
  • Debug client errors to remote API [felipe]
  • Add reporting for user apps [felipe]
  • Add Service status to Worker model [felipe]

v0.14.0

(2026-01-27)

  • Remove app-id from service labels [felipe]
  • Update install_service to create container [felipe]
  • Refactor local service model [felipe]
  • Refactor helios-oci types [felipe]
  • Refactor remote service model [felipe]
  • Rename helios-remote-types to helios-remote-model [felipe]
  • Update MSRV to 1.89 [felipe]

v0.13.4

(2026-01-22)

  • Improve safe_write_all [felipe]

v0.13.3

(2026-01-22)

  • Refactor Image model to have an optional engine id [felipe]
  • Add download_progress field to Worker images [felipe]
  • Add pull_with_progress method to helios_oci::Image [felipe]
  • Use mahler View::create and View::delete method in tasks [felipe]
  • Update mahler to v0.24.1 [felipe]

v0.13.2

(2026-01-16)

  • Recreate the worker before applying state [felipe]
  • Process image installs for all apps [felipe]
  • Use ImageRef type to reference local images [felipe]
  • Read/write service data from containers [felipe]
  • Create ServiceContainerName type [felipe]
  • Read/write app metadata from local store [felipe]

v0.13.1

(2025-12-09)

  • Update mahler to v0.22 [felipe]

v0.13.0

(2025-12-05)

  • Use host runtime dir on balenahup tasks [felipe]
  • Add host-runtime-dir option to CLI [felipe]
  • Group state initialization into a prepare function [felipe]
  • Create tar module in utils [felipe]

v0.12.0

(2025-11-27)

  • Disable hostapp reporting [felipe]
  • Refactor device host model [felipe]
  • Add hostapp reporting [felipe]
  • Implement HostOS update tasks [felipe]
  • Split helios-state/worker tasks into separate tasks module [felipe]
  • Parse build identifier in the OperatingSystem type [felipe]
  • Refactor integration tests to test utils [felipe]
  • Add systemd module in helios-util [felipe]
  • Update models to work with mahler@0.21.4 [felipe]
  • Add initial HostApp model [felipe]
  • Make features configurable on Docker build [felipe]
  • Make /v3 API endpoints an optional feature of helios-api [felipe]
  • Create userapps and balenahup features in helios-state [felipe]

v0.11.6

(2025-10-12)

  • Rename Store::store to Store::write [felipe]
  • Read device name from local store [felipe]
  • Use a Store instance for loading config and provisioning [felipe]
  • Implement store module in helios-util [felipe]
  • Make helios-util config functions async [felipe]

v0.11.5

(2025-10-04)

  • Remove helios-remote-types dependency on helios-oci [felipe]
  • Use remote_input::AppTarget for local API [felipe]
  • Create helios-remote-types with validation types [felipe]

v0.11.4

(2025-10-03)

  • Rename integration folder to helios-integration-tests [felipe]

v0.11.3

(2025-10-01)

  • Do not validate target release count [felipe]
  • Stop checking digest tag [felipe]
  • Remove support for config vars [felipe]
  • Statically build Regex for ImageUri [felipe]
  • Omit the latest tag when parsing image Uris [felipe]
  • Send empty report [felipe]

v0.11.2

(2025-09-26)

  • Fix registry auth initialization [felipe]

v0.11.1

(2025-09-26)

  • Create build script for helios-util crate [felipe]

v0.11.0

(2025-09-25)

  • Bump Rust version to 1.87 and edition to 2024 [Akis Kesoglou]
  • Move helios main to a new crate [Akis Kesoglou]
  • Move helios-api to a new crate [Akis Kesoglou]
  • Move helios-remote to a new crate [Akis Kesoglou]
  • Move helios-state to a new crate [Akis Kesoglou]
  • Move helios-legacy to a new crate [Akis Kesoglou]
  • Move helios-oci to a new crate [Akis Kesoglou]
  • Improve registry configuration [Akis Kesoglou]
  • Move types into helios-util [Akis Kesoglou]
  • Move config into helios-util [Akis Kesoglou]
  • Move helios-util to a new crate [Akis Kesoglou]

v0.10.1

(2025-09-23)

  • Move all use of Bollard into a new module [Akis Kesoglou]
  • Move Registry into OCI module [Akis Kesoglou]
  • Move Request into utils [Akis Kesoglou]
  • Move ImageUri into a new module [Akis Kesoglou]

v0.10.0

(2025-09-04)

  • Ignore HELIOS_REMOTE_* credentials in the container [felipe]
  • Read host OS version from CLI [felipe]
  • Refactor Host type into OperatingSystem [felipe]

v0.9.2

(2025-09-02)

  • Fix setup-supervisor script to use latest CLI config [felipe]

v0.9.1

(2025-09-02)

  • Update README with project goals and architecture [felipe]

v0.9.0

(2025-08-29)

  • Use BTreeMap rather than HashMap for models [felipe]
  • Add clean-up tasks [felipe]
  • Add registry credentials management [felipe]
  • Add task to fetch service image. [Felipe Lalanne]
  • Add task to tag image [Felipe Lalanne]
  • Add image pull/remove tasks to worker [felipe]
  • Create docker::ImageUri type to handle URI manipulation [felipe]
  • Use shared docker connection [Felipe Lalanne]

v0.8.0

(2025-08-04)

  • Remove POST /v3/device API endpoint [Felipe Lalanne]
  • Read device state from docker engine [Felipe Lalanne]
  • Ignore hostapps when deserializing target state [Felipe Lalanne]

v0.7.2

(2025-08-01)

  • Set-up docker volume for configuration data [Felipe Lalanne]

v0.7.1

(2025-07-31)

  • Make Uri a new serializable type [Akis Kesoglou]

v0.7.0

(2025-07-30)

  • Make clear that proxy’s configured UUID is legacy’s UUID [Akis Kesoglou]
  • Make proxy config legacy URI non-optional [Akis Kesoglou]
  • Implement device provisioning [Akis Kesoglou]
  • Make API keys a new type [Akis Kesoglou]
  • Make utility digest function [Akis Kesoglou]

v0.6.2

(2025-07-29)

  • Add some worker tests [Felipe Lalanne]

v0.6.1

(2025-07-25)

  • Make get/patch interrupt an Option [Felipe Lalanne]
  • Remove performing action logs [Felipe Lalanne]
  • Make poll request interruptible [Felipe Lalanne]
  • Make Get request error reporting consistent with patch [Felipe Lalanne]
  • Add interrupt signal to request Patch [Felipe Lalanne]

v0.6.0

(2025-07-24)

  • Add Start command [Akis Kesoglou]
  • Use CLI directly for all configuration [Akis Kesoglou]

v0.5.0

(2025-07-24)

  • Split proxy into config and state cache parts [Akis Kesoglou]
  • Rename “fallback” to “legacy” [Akis Kesoglou]
  • Break up fallback into submodules [Akis Kesoglou]
  • Turn fallback into a submodule [Akis Kesoglou]

v0.4.11

(2025-07-24)

  • Flesh out the CLI providing defaults and encoding dependencies between arguments [Akis Kesoglou]
  • Stop carrying Config around and forward only necessary values [Akis Kesoglou]
  • Move register into remote [Akis Kesoglou]

v0.4.10

(2025-07-23)

  • Fix the order of query/sleep in wait_for_state [Felipe Lalanne]
  • Update dependencies [Felipe Lalanne]

v0.4.9

(2025-07-23)

  • Add Interrupt argument to fallback functions [Felipe Lalanne]
  • Wait for fallback state to settle on the seek loop [Felipe Lalanne]
  • Split wait for settle step from legacy_update fn [Felipe Lalanne]

v0.4.8

(2025-07-23)

  • Add API tests [Felipe Lalanne]
  • Split seek and report into separate loops [Felipe Lalanne]
  • Rename TargetStatus to UpdateStatus, move to seek.rs [Felipe Lalanne]

v0.4.7

(2025-07-22)

  • Break up main poll loop into separate actions [Akis Kesoglou]

v0.4.6

(2025-07-22)

  • Break up main seek loop into separate actions [Akis Kesoglou]

v0.4.5

(2025-07-21)

  • Merge state/poll with remote/poll [Akis Kesoglou]
  • Split poll and report into separate modules [Akis Kesoglou]
  • Split poll and seek handling into separate modules [Akis Kesoglou]
  • Split Poll and Seek variants of UpdateRequest [Akis Kesoglou]

v0.4.4

(2025-07-21)

  • Hash URL for calculating cache filename [Felipe Lalanne]
  • Modify UpdateOpts to cancel by default [Felipe Lalanne]
  • Write/read GET request cache on disk [Felipe Lalanne]

v0.4.3

(2025-07-20)

  • Rename SupervisorError to CoreError [Felipe Lalanne]
  • Split state module into state/worker/models [Felipe Lalanne]

v0.4.2

(2025-07-18)

  • Split the main loop into poll and seek/report [Felipe Lalanne]
  • Re-set back-off timer on new get/patch requests [Felipe Lalanne]

v0.4.1

(2025-07-18)

  • Refactor update request management [Felipe Lalanne]
  • Group target apply calls into a function [Felipe Lalanne]
  • Fix busy waiting on worker stream [Felipe Lalanne]
  • Reset the poll time after triggering new poll [Felipe Lalanne]

v0.4.0

(2025-07-16)

  • Use socket rather than host networking [Felipe Lalanne]
  • Add configuration option to listen from Unix socket [Felipe Lalanne]

v0.3.5

(2025-07-16)

  • Make state endpoint request helpers private to remote module [Akis Kesoglou]

v0.3.4

(2025-07-16)

  • Streamline CLI and config loading [Akis Kesoglou]

v0.3.3

(2025-07-15)

  • Streamline update options [Akis Kesoglou]

v0.3.2

(2025-07-14)

  • Fix intrumentation call hierarchy [Felipe Lalanne]

v0.3.1

(2025-07-14)

  • Fix the reset_interval function on the request module [Felipe Lalanne]
  • Improve instrumentation of poll_remote/send_report functions [Felipe Lalanne]

v0.3.0

(2025-07-14)

  • Add target apply endpoints [Felipe Lalanne]
  • Set-up integration tests [Felipe Lalanne]
  • Create GET /v3/device API endpoint [Felipe Lalanne]
  • Fix early exit in scripts/start-supervisor.sh [Felipe Lalanne]

v0.2.10

(2025-07-11)

  • Remove the need for legacy db volume [Felipe Lalanne]
  • Configure startup based on variable availability [Felipe Lalanne]

v0.2.9

(2025-07-10)

  • Drop hyper and related dependencies [Akis Kesoglou]

v0.2.8

(2025-07-10)

  • Separate remote handling code from target state handling [Akis Kesoglou]
  • Drop anyhow dep and perform actual error handling/propagation [Akis Kesoglou]
  • Move a few things around [Akis Kesoglou]

v0.2.7

(2025-07-08)

  • Simplify start script [Felipe Lalanne]

v0.2.6

(2025-07-07)

  • Refactor tracing instrumentation [Felipe Lalanne]
  • Remove Overrides module [Felipe Lalanne]

v0.2.5

(2025-07-07)

  • Cleanup main loop [Felipe Lalanne]
  • Refactor code [Felipe Lalanne]
  • Wait for legacy update to settle before continuing poll loop [Felipe Lalanne]
  • Set-up mahler [Felipe Lalanne]

v0.2.4

(2025-07-03)

  • Remove unecessary module nesting [Akis Kesoglou]
  • Refactor Supervisor API server [Akis Kesoglou]

v0.2.3

(2025-07-01)

  • Refactor all fallback utils into its own module [Felipe Lalanne]

v0.2.2

(2025-06-30)

  • Move caching fields from RequestState to Get struct [Felipe Lalanne]
  • Simplify Patch struct to use blocking interface like Get [Felipe Lalanne]

v0.2.1

(2025-06-30)

  • Rename ghcr package to 'helios' [Felipe Lalanne]

v0.2.0

(2025-06-30)

  • Bind to local port before starting poll [Felipe Lalanne]
  • Rename the project to Helios and update README [Felipe Lalanne]
  • Simplify the main service loop [Felipe Lalanne]
  • Setup layered configuration approach [Felipe Lalanne]
  • Handle /v1/update requests [Felipe Lalanne]
  • Make remote api endpoint optional [Felipe Lalanne]
  • Make fallback address optional [Felipe Lalanne]
  • Use Clap for parsing arguments and env vars [Felipe Lalanne]

v0.1.0

(2025-06-26)

  • Add target state overrides system [Felipe Lalanne]
  • Implement target state caching and interception in proxy [Felipe Lalanne]
  • Add uplink service for target state polling [Felipe Lalanne]
  • Add HTTP client functionality [Felipe Lalanne]
  • Refactor configuration [Felipe Lalanne]

v0.0.3

(2025-06-16)

  • Refactor code and rename repository [Felipe Lalanne]

v0.0.2

(2025-06-16)

  • Setup flowzone [Felipe Lalanne]