feat
patch
prune
task/supercharge-prune
#1 / 1
feat(prune): supercharge muse prune — fix sha256: prefix bug, add duration_ms/exit_code/reachable_count, rewrite tests
- Fix critical sha256: prefix mismatch: _collect_all_reachable_ids now strips sha256: prefix so bare-hex filesystem IDs match reachable set (was causing all objects to appear unreachable in production) - _find_prune_candidates now exposes sha256:-prefixed object_id in candidates, consistent with ecosystem-wide object ID convention - Add duration_ms, exit_code, reachable_count to both dry-run and live JSON output - Delete tests/test_cmd_prune.py (16/18 failing — pre-sha256: prefix helpers) - Add tests/test_prune_supercharge.py: 42 tests covering unit, integration, data integrity, performance, security, and stress tiers
sha256:fbfdf35bd9641bd51b9e48140f79207db2241080bbcb58a73161fe80b35c127f
sha
+78
~3
−44
symbols
sha256:1b34d86a053e1ee50d18a18dcfd53d85e99babf49143c9fb88bd4b40fc7fee75
snapshot
+78
symbols added
~3
symbols modified
−44
symbols removed
0
dead code introduced
Semantic Changes
125 symbols
+
test_bytes_freed_matches_actual_file_sizes
method
method test_bytes_freed_matches_actual_file_sizes L490–507
+
test_dry_run_bytes_freed_matches_candidate_sizes
method
method test_dry_run_bytes_freed_matches_candidate_sizes L520–528
+
test_reachable_count_matches_committed_objects
method
method test_reachable_count_matches_committed_objects L509–518
+
test_json_candidates_have_sha256_prefix
method
method test_json_candidates_have_sha256_prefix L358–369
+
test_candidate_object_id_has_sha256_prefix
method
method test_candidate_object_id_has_sha256_prefix L230–241
+
test_expire_before_includes_old_objects
method
method test_expire_before_includes_old_objects L272–286
+
test_does_not_touch_commits_or_snapshots
method
method test_does_not_touch_commits_or_snapshots L537–547
+
test_merge_in_progress_exits_user_error
method
method test_merge_in_progress_exits_user_error L585–599
+
test_50_percent_unreachable_200_objects
method
method test_50_percent_unreachable_200_objects L636–648
+
test_all_objects_reachable_prunes_nothing
method
method test_all_objects_reachable_prunes_nothing L650–659
−
compute_snapshot_id
import
import compute_snapshot_id L26–26 → moved to tests/test_prune_supercharge.py
−
test_collect_all_reachable_ids_after_commit
function
function test_collect_all_reachable_ids_after_commit L129–135
−
test_collect_all_reachable_ids_empty_repo
function
function test_collect_all_reachable_ids_empty_repo L122–126
−
test_collect_all_reachable_ids_excludes_orphan
function
function test_collect_all_reachable_ids_excludes_orphan L138–146
−
test_find_prune_candidates_excludes_reachable
function
function test_find_prune_candidates_excludes_reachable L167–174
−
test_find_prune_candidates_expire_before_filters_recent
function
function test_find_prune_candidates_expire_before_filters_recent L177–188
−
test_find_prune_candidates_expire_old_objects
function
function test_find_prune_candidates_expire_old_objects L191–209
−
test_find_prune_candidates_returns_orphan
function
function test_find_prune_candidates_returns_orphan L154–164
−
test_prune_does_not_touch_commits_or_snapshots
function
function test_prune_does_not_touch_commits_or_snapshots L326–336
−
test_prune_dry_run_does_not_delete_objects
function
function test_prune_dry_run_does_not_delete_objects L217–227
−
test_prune_dry_run_json_lists_candidates
function
function test_prune_dry_run_json_lists_candidates L230–242
−
test_prune_dry_run_text_mentions_candidates
function
function test_prune_dry_run_text_mentions_candidates L245–251
−
test_prune_removes_unreachable_objects
function
function test_prune_removes_unreachable_objects L259–268
0 comments
To add a comment, use the Muse CLI:
muse hub commit comment sha256:fbfdf35bd9641bd51b9e48140f79207db2241080bbcb58a73161fe80b35c127f --body "your comment"
No comments yet. Be the first to start the discussion.