mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-10 11:06:29 +08:00
Gateways that crash-loop under systemd/launchd previously flapped forever with no persisted state and no supervisor signal. The gateway now records every boot outcome in the shared state DB (gateway_boot_lifecycle); three unclean boots within five minutes trip a breaker that boots the gateway in safe mode: full control plane available, channel/provider auto-start suppressed at the channel-manager seam (startup, config hot-reload, secrets.reload) with manual channels.start override, one stability bundle per trip. The breaker re-evaluates each boot and logs recovery when the window drains. Slow shutdowns record forced_stop and never count as crashes; /readyz stays ready and reports suppressed channels; the health monitor treats suppressed accounts as expected-stopped. Fatal invalid-config errors now exit 78 (EX_CONFIG) on both the startup and unhandled-rejection paths, engaging the systemd unit's pre-existing RestartPreventExitStatus=78 so supervisors stop relaunching until the config is fixed.