schedule-tick: prove a scheduled container fires on its cadence (ADR 0053) #11

Merged
jschoubben merged 1 commits from feat/schedule-tick into main 2026-09-06 12:27:46 +00:00
Owner

The lab proof ADR 0053 owed. A minimal module declares a schedule: "* * * * *" alpine container that appends a timestamp to a mounted file. The bed asserts: installing the schedule leaves the node current without a run (non-gating), then the container fires within a minute and again the next minute (recurring). SUITE_EXIT=0. Requires mesh-control feat/schedule-container and mesh-host feat/apply-schedule.

https://claude.ai/code/session_01LrgweAeERJYBg88c5cKDzF

The lab proof ADR 0053 owed. A minimal module declares a `schedule: "* * * * *"` alpine container that appends a timestamp to a mounted file. The bed asserts: installing the schedule leaves the node current **without a run** (non-gating), then the container fires within a minute and **again** the next minute (recurring). `SUITE_EXIT=0`. Requires mesh-control `feat/schedule-container` and mesh-host `feat/apply-schedule`. https://claude.ai/code/session_01LrgweAeERJYBg88c5cKDzF
jschoubben added 1 commit 2026-09-06 12:27:35 +00:00
The bed that proves the scheduled-container primitive end to end. schedtest
is the thinnest carrier of ADR 0053: one container marked
schedule: "* * * * *" that appends a timestamp to a mounted data dir each
time the host fires it -- no service, no listener, no provisioner, no
runtime, no tools, no events.

The three claims it proves, from the ADR's "How each claim is checked":
installing the schedule leaves the node current WITHOUT a run (baseline
captured right after settled, the deliberate inversion of run-once); the
container fires on its cadence (a line beyond the baseline within ~150s);
and it recurs (a second line on the next minute -- cadence, not a one-shot).

schedtest serves and consumes nothing and carries no runtime, so it is not
issued a broker account: module add -> assign -> one push is the whole
sequence, no module issue. The tick image is a bare alpine served by the
scenario's registry by digest.

Claude-Session: https://claude.ai/code/session_01LrgweAeERJYBg88c5cKDzF
jschoubben merged commit b75ec7782d into main 2026-09-06 12:27:46 +00:00
jschoubben deleted branch feat/schedule-tick 2026-09-06 12:27:46 +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-lab#11