Seen live on the first production runner install: the docker group was granted after the systemd user manager had started, the engine did not answer from the service, and the daemon silently degraded to 'container isolation OFF: tasks run on this machine with the policy hardened'. For an unattended runner this contradicts the no-uncaged-agent rule (#100).
Target: when isolation is configured (or defaulted) to container and the engine is unreachable, a headless runner (runner serve) must fail closed: never claim tickets, surface the condition in its local status over the heartbeat (e.g. 'cage_unavailable') and in runner list / the dashboard, and retry the engine probe each tick. The interactive workspace can keep the current degradation prompt-side, but never silently.
Seen live on the first production runner install: the docker group was granted after the systemd user manager had started, the engine did not answer from the service, and the daemon silently degraded to 'container isolation OFF: tasks run on this machine with the policy hardened'. For an unattended runner this contradicts the no-uncaged-agent rule (#100).
Target: when isolation is configured (or defaulted) to container and the engine is unreachable, a headless runner (runner serve) must fail closed: never claim tickets, surface the condition in its local status over the heartbeat (e.g. 'cage_unavailable') and in runner list / the dashboard, and retry the engine probe each tick. The interactive workspace can keep the current degradation prompt-side, but never silently.