You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
Action-shaped defs can declare a preview phase — read-only, --check only — that
describes what apply would do, rendered as a distinct preview ▸ block that never
reads as a convergence claim (ADR-0029). docker.compose-up uses it to show the
per-service recreate/start plan (docker compose up --dry-run); best-effort, so an
old Compose or an unreachable daemon degrades to a plain would.up.
dir-copy(src, dst): deliver a control-host file tree to the target verbatim
and binary-safe — HTML and images alike, byte-for-byte, idempotent per file
(ADR-0028). Resolved control-side into per-file file-put steps; refuses a tree
over 32 MB with a clear error.
Local transport: a host with local: "true" in the inventory is provisioned on
the control host itself (agent run as a subprocess), no SSH — same agent, plan,
and reports as a remote target (ADR-0027).
archive-extract-member(src, dst, member): extract a single file from a tarball
to dst (content-hash idempotent) — compose with file-download + file-mode to
install a binary from a release tarball without a raw shell escape.
Fixed
Report labels now show name=value for each argument (file-mode(mode=755, path=…)) instead of bare values in key order, which read as swapped.
archive-extract re-extracts when the archive at src changes, instead of
skipping because the destination is non-empty. Convergence is now decided by the
archive's sha256, recorded in a .shellf-archive-sha256 sentinel under dst.