cgcardona / muse public
feat main

feat: complete MuseDomainPlugin integration — apply(), incremental checkout

revert.py: reuse parent commit's snapshot_id directly; eliminates the post-restore re-scan and redundant write_object_from_path calls. Objects are already in the content-addressed store.

cherry_pick.py: use merged_manifest from plugin.merge() directly; objects sourced from existing snapshots need no re-write.

checkout.py: replace full wipe+restore with incremental delta checkout via plugin.diff() + plugin.apply(). Only files that actually changed are touched — deleted paths are removed, added/modified paths are restored from the object store. plugin.apply() serves as the domain-level post-checkout hook.

plugin.py: fix apply() — split the Path and dict code paths clearly. Path case rescans the workdir after physical changes (correct). Dict case applies removals in-memory and documents the limitation that added/modified hashes require target-side data not carried by the delta.

All 5 MuseDomainPlugin methods are now wired into CLI commands: snapshot() → commit, stash diff() → diff, checkout (new) merge() → merge, cherry-pick drift() → status apply() → checkout (new)

279 tests / 279 passing · 91% coverage

G Gabriel Cardona <gabriel@tellurstori.com> · 3d ago Mar 17, 2026 · cc9bbc18 · parent f408d081
5
files changed
181
files in snapshot
← Older Oldest on main
All commits
Newer → Latest on main
Comments 0

No comments yet. Be the first to start the discussion.