Add passive bounded zara-healthcheck service #495

Open
nsaspy wants to merge 0 commits from rage/19-healthcheck-clean into main
Owner

Implements #19.

Clean replacement for closed #68, rebuilt directly from canonical main after #67 so no historical timer delta is present.

Adds a strictly passive/read-only health state engine over configured probe adapters. Probe results normalize to healthy/degraded/unhealthy/unknown with bounded evidence and history. Exceptions fail to unknown without leaking exception text.

State changes use configurable hysteresis and emit deduplicated structured health.state_changed events; repeated same-state samples do not spam events. health.export_facts provides structured evidence for expert consumers such as zara-sysadmin without putting remediation in this plugin.

There is no required watcher/daemon: polling is explicit and externally schedulable. An install with no probes degrades honestly as health-probes-not-configured.

Published through plugins.json, so pinned-Zara compatibility, temporary-home load/tool registration, per-plugin unit tests, install layout, Nix packaging, and aggregate flake checks exercise the public surface.

Implements #19. Clean replacement for closed #68, rebuilt directly from canonical `main` after #67 so no historical timer delta is present. Adds a strictly passive/read-only health state engine over configured probe adapters. Probe results normalize to healthy/degraded/unhealthy/unknown with bounded evidence and history. Exceptions fail to `unknown` without leaking exception text. State changes use configurable hysteresis and emit deduplicated structured `health.state_changed` events; repeated same-state samples do not spam events. `health.export_facts` provides structured evidence for expert consumers such as zara-sysadmin without putting remediation in this plugin. There is no required watcher/daemon: polling is explicit and externally schedulable. An install with no probes degrades honestly as `health-probes-not-configured`. Published through `plugins.json`, so pinned-Zara compatibility, temporary-home load/tool registration, per-plugin unit tests, install layout, Nix packaging, and aggregate flake checks exercise the public surface.
Some checks failed
CI / test (pull_request) Failing after 18s
This branch is already included in the target branch. There is nothing to merge.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin rage/19-healthcheck-clean:rage/19-healthcheck-clean
git switch rage/19-healthcheck-clean

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff rage/19-healthcheck-clean
git switch rage/19-healthcheck-clean
git rebase main
git switch main
git merge --ff-only rage/19-healthcheck-clean
git switch rage/19-healthcheck-clean
git rebase main
git switch main
git merge --no-ff rage/19-healthcheck-clean
git switch main
git merge --squash rage/19-healthcheck-clean
git switch main
git merge --ff-only rage/19-healthcheck-clean
git switch main
git merge rage/19-healthcheck-clean
git push origin main
Sign in to join this conversation.
No description provided.