v0.2.14
Breaking
[monitor.host_health]unknown keys are now rejected, and a nested table given as a scalar ([agent] env = "x",[monitor] host_health = 1) now raisesConfigErrorinstead of crashing. Runagent-runner migratebeforeupgrade, as in 0.2.12/0.2.13.
Fixed
mem_pressurenow gates on a cache-poor-valid signal (PSI, then swap-out rate, then combined lowMemFree+MemAvailable) instead of the inflatedMemAvailablealone, and warns once when the configuredmem_avail_min_mbgate is provably inert on the host;servedefers starting a new round while the host reports pressure and terminates a ballooning round mid-flight before it goes unresponsive.- An unreadable config (bad permissions, a directory) now fails cleanly with
ConfigError/exit 78 instead of a raw traceback; a startup git-status timeout no longer crashes the check; a killed stash no longer strands.git/index.lock. transient_error_backoff_cappedreports the raw detector reset time, not the ladder-extended one.
Notes
- New event kinds:
round_deferred,round_resumed,round_mem_terminated; new alert kinds:mem_signal_unavailable,mem_pressure_gate_inert.peek --jsonschema is unchanged this release. config.py/monitor.py/api's round-input helpers were reorganized into internal modules this release — no public API change.
See docs/migrations/0.2.md.