Releases: kinti/driftcheck
Releases · kinti/driftcheck
Release list
v0.2.1 — first public release
The cross-layer updater for your agent arsenal: skills, MCP servers, and plugins — one drift picture, one snapshotted update path, one command to undo any of it.
What's in the box
check— fully read-only drift report across all three layers (exit 1 when drift; cron-friendly,--jsonavailable)inventory— census of every skill:adopted/git-remote/git-local/orphanadopt— give copy-installed orphan skills a provenance record (repo + subpath + exact SHA); git clones are rejectedupdate— the whole plan as one snapshotted batch: git pulls, adopted refreshes from origin tarballs at an exact SHA, MCP pins across every configcheckreads, marketplace refresh (including pulling clones the CLI's own refresh silently skips)pin— floatingnpx/uvxservers pinned to exact versions, in the file each entry lives inrestore— undo any batch: changed files back, created files deletedselftest— 20 unit tests, each named after the promise it guards
The never-breaks contract
- Reporters never touch your state (
checkdoesn't evengit fetch— refs are labelled with their age). - Mutators are dry-run by default;
--writeis the gate. - One batch, one snapshot, taken before anything changes. Snapshot failure aborts with zero mutations.
restore latestputs the whole batch back — "back to before", not "mostly back".
Validation before this release
- Live on a real arsenal: 104 skills (102 orphans), 7 floating MCP servers, marketplaces 46 days stale → 0 drift after one
update. - Adversarial two-axis external review → 12 findings, all fixed, each guarded by a named test.
- 15-scenario E2E campaign from zero (real CLI, sandboxed HOME, real GitHub/npm traffic, system Python 3.9) → caught 3 more real bugs, including an adopted-refresh that had never once worked.
Zero dependencies — one stdlib-only Python file, audit it in one sitting. MIT.