Patch release from a full fresh-eyes re-audit of v0.1.0 by three independent reviewers (architecture-compliance, code-quality, anti-fake critic). The headline metrics were re-confirmed real, reproducible, and non-circular — no yank risk. No change to the canonicalization rule or any content hash; memcanon-c14n/1 is unchanged and all v0.1.0 stores/bundles remain valid.
Added
import/export --adapter mem0|letta— move records to/from a vendor backend directly from the CLI (was a Python-API-only capability), with--user-id/--agent-id; writes stay verbatim (infer=False). The locked adapter path is now reachable from the binary, the README claim is accurate, and exit code 6 is reachable.doctor --probe mem0|letta— reports vendor adapter reachability.
Fixed
verify/doctor/diff/dedupno longer crash with a traceback on a corrupt SQLite DB, malformed bundle JSON, or hand-edited non-object markdown front-matter — they surface a drift/validation report or a clean exit code.- Exit code 4 (version mismatch) is now reachable.
LocalStore.open()failure after the advisory lock is taken no longer orphans the lock.- Markdown record files written atomically (temp +
os.replace). - HF embedder fails closed when
HF_TOKENis unset (no surprise network call). - Transfer journal best-effort-fsyncs its parent directory on create.
Changed
results/v0.1.0_roundtrip.json→results/roundtrip.json(values unchanged: 100% round-trip invariance over 946 checks, 100% dedup correctness).- Removed dead, always-true
TransferResult.ok.
116 tests pass; ruff + mypy --strict clean; golden/metrics/README reproducibility gates green; CI green on Python 3.11 and 3.12.