gabriel / muse public
fix patch task/push-object-delta #1 / 1
AI Agent gabriel · 48 days ago · Apr 24, 2026 · Diff

fix: push only delta objects — subtract have-snapshot objects in collect_object_ids and walk_commits

A snapshot is a full repo manifest, not a diff. Without subtracting the objects already reachable from have-commits' snapshots, every push sent all ~N objects even when only 1 file changed.

new_objects = objects_in_new_snapshots − objects_in_have_snapshots

Both collect_object_ids and walk_commits now collect have-commit snapshot objects and subtract them before returning. Gracefully skips have-commits whose snapshot is not stored locally (over-sends, does not crash).

Tests: 9 covering unchanged/new/removed/empty delta, walk_commits delta semantics, 10-file and 100-file repos, have=[] regression, missing snapshot.

sha256:9d2b992877f2b4ed7851f806069b17f1cecbe512fd99b507892b87d2925d1581 sha
sha256:a207ecbd06e2b8e89af591519983d8667f282a3a8ff1e98d067ece0bc24694bb snapshot
← Older Oldest on task/push-object-delta
All commits
Newer → Latest on task/push-object-delta

0 comments

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

To add a comment, use the Muse CLI: muse hub commit comment sha256:9d2b992877f2b4ed7851f806069b17f1cecbe512fd99b507892b87d2925d1581 --body "your comment"