feat(gc): phase 3 — prune object refs and globally unreferenced objects
Extended GCResult with object_refs_deleted, objects_deleted, storage_bytes_freed. GC now walks orphaned snapshot manifests to identify stale ref rows, deletes them, then finds objects with zero remaining refs globally and removes them from both musehub_objects and storage. Shared objects (refs from other repos) are preserved.
Added 6-test suite in tests/test_gc_object_refs.py covering: - stale ref deletion after force push - ref retention when object is still in a live snapshot - global object deletion when no refs remain - shared object retention when another repo holds a ref - clean-repo no-op invariant - GCResult field accuracy
sha256:6aa4ede3e0fe46a9ddef4c41015bed0195ef2a8f904417a772f293f9a7fc3bb2
sha
sha256:7fb36d48044faa193e8696eb5560803e3b96162e9e6e572a3221e3493e33cf00
snapshot
← Older
Oldest on task/phase3-gc-object-refs
All commits
Newer →
Latest on task/phase3-gc-object-refs
0 comments
To add a comment, use the Muse CLI:
muse hub commit comment sha256:6aa4ede3e0fe46a9ddef4c41015bed0195ef2a8f904417a772f293f9a7fc3bb2 --body "your comment"
No comments yet. Be the first to start the discussion.