v0.2.16
Added
[monitor.host_health]gains PSI knobs —psi_full_avg10_critical(default 60.0) andpsi_some_avg10_warning(default 5.0) — plusmem_critical_consecutive_samples(default 3) and anin_round_mem_terminateoff switch for the mid-round memory floor.serveprobes this process's cgroup v2 memory budget at startup (host_cgroup_memory_limit); whenmemory.maxandmemory.swap.maxare both finite, the mid-round floor defers to kernel cgroup-OOM (mem_pressure_deferred_to_cgroup) instead of terminating the round itself.mem_loopnow escalates across restarts: recurring 3 times inside a rolling 2h window stops the service for real (mem_loop_persistent, exit70) instead of respawning into the same loop forever.- New exit-0 no-progress breaker: 5 consecutive fast, clean rounds with no recorded usage (a CLI that exits 0 without ever reaching the model) now stop
serve(stalled_no_progress, exit75) instead of spinning invisibly.
Fixed
- PSI-full critical was a single ≥1% momentary sample — a hiccup, not a coma — on every PSI-capable host. It now requires a sustained ≥60% avg10 held for
mem_critical_consecutive_samples(default 3, ~30s) consecutive checks. - The mid-round swap-out check is now per-tick instead of cumulative since round-start, so a host that recovers mid-round is no longer permanently flagged for the rest of the round.
- The pre-round admission gate now defers only on
criticalpressure, not on any pressure (a merewarning, e.g. ordinary swap churn, no longer delays the next round).
Notes
- New events:
host_cgroup_memory_limit,mem_pressure_deferred_to_cgroup,mem_loop_persistent,stalled_no_progress,round_mem_critical_sample;round_mem_terminatedgainedconsecutive/contextfields. Not breaking: noagent-runner migrateneeded,peek --jsonschema is unchanged. - Re-render the systemd unit (
agent-runner install) after upgrading: the new unit adds exit70toRestartPreventExitStatussomem_loop_persistentstops the service instead of restarting into the same loop.
See docs/migrations/0.2.md.