Skip to content

The loop starts its own supervisor

Status: accepted · 2026-09-04 · merged as KO-248

Context

The supervisor must be a separate process (a thread dies with the loop), but it was also a separate command that the operator had to remember.

Decision

At startup the loop checks the target's supervisor lock and, if nobody holds it, spawns a detached --supervise. [loop] spawn_supervisor = false for operators who run it under systemd.

Consequences

factory.py TARGET is the whole command. The supervisor outlives the loop on purpose.

Tickets

KO-248, merged 2026-09-04.