Skip to content

SenHub Agent 0.4.1

2026-06-23 · auto-update reliability fix

A focused point release that makes the built-in auto-updater actually apply. Two fixes stack up: the active periodic updater was a no-op on the current (local) configuration and never resolved a new release, and the install path staged the daemon binary where the hardened service could not overwrite it. With both landed, an enabled agent downloads, verifies and restarts onto the new binary with no manual step.

Fixed

  • Fixed auto-update The active periodic updater was a no-op: the agent's version was resolved as empty, so every tick concluded "No update required" and the registry's latest was never fetched — only the passive startup check queried the registry, and that only logs a warning. The updater now resolves its target to latest by default (a new auto_update.version may pin a specific target); the channel still resolves the stable list only, betas are never auto-applied. (#567)
  • Fixed install agent install now stages the daemon binary under /var/lib/senhub-agent/bin instead of /usr/bin, so the unprivileged senhub service user can write its own replacement. Under the hardened unit the old location was read-only (ProtectSystem=full) and root-owned, and the apply failed with "read-only file system" / "permission denied". The packaged units (refresh-unit, .deb, .rpm) use the same path so all three agree. (#571)
  • Fixed install The systemd unit's restart policy is now always instead of on-failure: the updater exits cleanly to hand off to the freshly written binary, and on-failure would not restart a clean exit — a self-updated agent could have stayed down. An explicit systemctl stop is still honored. (#567)

Internal

  • Internal config The removed pre-0.2.0 online/offline-mode vocabulary is purged from the CLI, config, code and current docs — the mode field is dropped (existing keys ignored), the status "connection mode" is removed, and RemoteConfigurationData is renamed to ConfigurationData. The agent is always locally configured; no behavioral change.