feat: Phase 6 — storage tier formalisation (HOT/WARM lifecycle)
- musehub/storage/tiers.py: new module with StorageTier enum, prune_packed, classify_object, storage_stats, and auto_pack - StorageTier.HOT = loose files; StorageTier.WARM = pack files - prune_packed removes loose objects covered by packs (missing half of the Phase 5 pack workflow) - classify_object returns HOT/WARM/None with loose taking precedence - storage_stats returns hot/warm/total counts deduplicating objects present in both tiers (pre-prune state) - auto_pack packs + prunes in one call when loose count >= min_loose - 24 new tests in 7 tiers across the full HOT→WARM lifecycle
sha256:12ddea7e93c748883b24ad5ce08bea8fe3cb02abd213de51ac1e2b063a3bc890
sha
+58
symbols
sha256:e60d1a1893f2f0b5f5c7271b651525108660a31a895e657d984f8a3cd87325cb
snapshot
+58
symbols added
0
dead code introduced
Semantic Changes
58 symbols
+
test_packs_and_prunes_when_loose_meets_threshold
method
method test_packs_and_prunes_when_loose_meets_threshold L360–375
+
test_skips_when_loose_below_threshold
method
method test_skips_when_loose_below_threshold L377–389
+
test_hot_before_prune_loose_and_pack_both_present
method
method test_hot_before_prune_loose_and_pack_both_present L214–225
+
test_warm_for_object_in_pack_loose_removed
method
method test_warm_for_object_in_pack_loose_ L227–238
+
test_warm_for_packed_object_after_prune
method
method test_warm_for_packed_object_after_prune L201–212
+
test_returns_none_after_object_deleted_from_all_tiers
method
method test_returns_none_after_object_deleted_from_all_tiers L257–272
+
test_new_objects_written_after_prune_are_hot
method
async_method test_new_objects_written_after_prune_are_hot L453–480
+
test_objects_readable_through_all_lifecycle_stages
method
async_method test_objects_readable_through_all_lifecycle_stages L417–450
+
test_removes_all_covered_loose_objects
method
method test_removes_all_covered_loose_objects L84–100
+
test_mixed_prune_removes_only_covered
method
method test_mixed_prune_removes_only_covered L156–185
+
test_preserves_loose_objects_not_in_any_pack
method
method test_preserves_loose_objects_not_in_any_pack L133–154
0 comments
To add a comment, use the Muse CLI:
muse hub commit comment sha256:12ddea7e93c748883b24ad5ce08bea8fe3cb02abd213de51ac1e2b063a3bc890 --body "your comment"
No comments yet. Be the first to start the discussion.