run-once: a container the host runs to completion (ADR 0052) #9

Merged
jschoubben merged 1 commits from feat/lifecycle-run-once into main 2026-09-05 22:05:06 +00:00
Owner

Implements ADR 0052's manifest/resolver half. run-once: true on a container is validated (must be boolean; refused alongside restart-on — contradictory lifecycles) near the manifest, carried through to the host declaration unchanged, in author order before the container it gates. Three unit tests (renders in author order, must be boolean, cannot pair with restart-on). go build/go test ./... green.

https://claude.ai/code/session_01LrgweAeERJYBg88c5cKDzF

Implements ADR 0052's manifest/resolver half. `run-once: true` on a container is validated (must be boolean; refused alongside `restart-on` — contradictory lifecycles) near the manifest, carried through to the host declaration unchanged, in author order before the container it gates. Three unit tests (renders in author order, must be boolean, cannot pair with restart-on). `go build`/`go test ./...` green. https://claude.ai/code/session_01LrgweAeERJYBg88c5cKDzF
jschoubben added 1 commit 2026-09-05 22:04:52 +00:00
A container may be marked `run-once: true` — a step the host runs to completion,
gating whatever the declaration places after it. The control plane's part is
small: the field is carried to the host unchanged (containers pass through as
maps), and the step keeps its author-order position ahead of the container it
gates, because the gate is declaration order, not a resolved dependency
(ADR 0005).

The manifest parser refuses a run-once that is not a boolean and the pair
run-once + restart-on (contradictory lifecycles) — near the manifest rather than
far away on the machine, the same lesson the action ban records. Three unit
tests; go build ./... and go test ./... green.

Claude-Session: https://claude.ai/code/session_01LrgweAeERJYBg88c5cKDzF
jschoubben merged commit 3b0f17b8fd into main 2026-09-05 22:05:06 +00:00
jschoubben deleted branch feat/lifecycle-run-once 2026-09-05 22:05:07 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-controller#9