forked from heavy-duty/rig
Agent tenants exist to run the cron-driven duty engine, and the engine's installer runs unprivileged — it can detect a missing cron but never apt-get it. Install cron with the shared toolbelt, then assert the effective state, not the package: crontab on PATH AND cron.service enabled and active, converging (unmask/enable/start) best-effort first. A masked daemon with the binary present is exactly the silent-inert box the issue reports, so the service asserts are the authority and either failing dies naming cron. staging-box stays exempt with the rest of the agent-assert block: no agent, no duty engine. Machine roles (bootstrap.sh) are deliberately not widened — the issue names tenants as the demonstrated gap. Closes #162 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| 152.md | ||
| 153.md | ||
| 160.md | ||
| 162.md | ||
| README.md | ||
changelog.d/ — the next release's section, one fragment per issue
Machine-assembled by bin/changelog-assemble (#112): every PR that changes
behavior writes one file here — <issue>.md, the exact prose that will be
published, nothing else — and the release PR folds them all into the next
## X.Y.Z — DATE section of CHANGELOG.md, consuming them. Distinct
filenames never conflict, which is this directory's whole reason to exist.
This README is the marker that keeps the directory tracked when it holds no
fragments (#112 D1) — changelog-armed refuses a tree without it; do not
delete it.