- status: read-only report of deployed/repository revision, pending changes,
skipped items (with reasons), unrecognized local items, binary version;
--json machine-readable; exit 1 when local modifications block repository
updates (headless drift checks)
- sync/status share a read-only prepare() front half
- notify package: windows toast via PowerShell script (go-toast mechanism,
zero deps, build-tag gated), noop on linux/macos; cross-compile verified
- toast fires exactly once per sync with warnings, never for routine syncs;
notification failures are logged and never fail the sync (fail-open)
- Plan is a pure function (inventory, manifest, disk facts, injected path
mapping) emitting exactly six actions: deploy, update, skip+warn,
leave+warn, remove, keep — deterministic order, no filesystem access
- full 3x3 matrix (disk unmodified/user-modified/never-managed x upstream
added/changed/removed) table-tested plus missing-disk restore cases,
a mixed fixture and a purity/determinism guarantee test
- executor applies plans item by item (atomic deploy/remove per item),
rewrites the manifest once, appends timestamped SKIP/LEAVE lines with
item name and reason to the sync log
- sync now plans before mutating: unmanaged occupants block new deploys,
upstream deletions remove only unmodified copies, local modifications
always win and are warned about