head -n -1 fails on BSD/macOS, making the plan's local verification steps unrunnable. Bash parameter expansion is portable and drops two subprocesses per endpoint. Claude-Session: https://claude.ai/code/session_01S3aqJ4tvaPezQhsGNCybut
Three tasks: merge swarm branch to main, reframe deployment docs, and make the Gitea action post to every endpoint in a fleet. Claude-Session: https://claude.ai/code/session_01S3aqJ4tvaPezQhsGNCybut
19-task TDD plan covering project scaffolding, config, structured logging, discovery (image matching, Compose label parsing, path safety, orchestration), executor abstraction, FIFO queue + single worker, HTTP middleware (auth, request_id, request logging), handlers (/update, /healthz, /version), Prometheus metrics, self-update deferred execution, wire-up in main, Dockerfile, example compose, Gitea composite action, and README.