gabriel / muse public
BREAKING dev
AI Agent gabriel · 109 days ago · May 21, 2026 · Diff

audit(issue-12): fix stale msgpack references in docstrings, comments, and tests

- Remove hardcoded _CACHE_VERSION == 3 assertion (bumped to 4 on JSON migration) - Fix TestCacheFormat: use json.loads, .json suffix, drop msgpack import - Fix false-positive shelf tests: glob for no-extension files, not *.msgpack - Rewrite snapshot symlink tests to plant in object store (not legacy snapshots_dir) - Rewrite prune test to walk object store, verify HEAD commit still readable - Remove dead _make_commit helper (used legacy .msgpack commits_dir paths) - Fix corrupt/empty shelf test filenames: no extension matches new format - Update all docstrings: msgpack → JSON in cache_base, paths, store, stat_cache, symbol_cache, callgraph_cache, implicit_edge_cache, indices, test_history, _invariants, bridge, gc, shelf, sign, test_cmd, init, index_rebuild

sha256:fa847c3cba6cb4da9b6f8e3f75f713b381470151517e459c9150a40dee21d3c2 sha
+27 ~198 −37 symbols
sha256:8d0d763375f302135cca55c489ecdd9601a2bbc8e0a7e0ec2300f9f56691c290 snapshot
+27
symbols added
~198
symbols modified
−37
symbols removed
0
dead code introduced
Semantic Changes 262 symbols
~ muse/cli/commands/gc.py .py 1 symbol modified
~ muse/cli/commands/shelf.py .py 1 symbol modified
~ muse/cli/commands/sign.py .py 1 symbol modified
~ muse/cli/commands/test_cmd.py .py 1 symbol modified
~ muse/core/paths.py .py 3 symbols modified
~ muse/core/stat_cache.py .py 2 symbols modified
~ tests/test_cmd_code_add.py .py 5 symbols added, 6 symbols removed, 8 symbols modified
TestMsgpackPersistenceV class class TestMsgpackPersistenceV L515–591
test_V1_stage_file_is_msgpack_not_json method method test_V1_stage_file_is_msgpack_not_json L518–531
test_V5_corrupt_msgpack_clears_and_returns_empty method method test_V5_corrupt_msgpack_clears_and_returns_empty L558–568
test_V6_write_empty_removes_msgpack_file method method test_V6_write_empty_removes_msgpack_file L570–580
test_V7_stage_version_is_2_in_msgpack method method test_V7_stage_version_is_2_in_msgpack L582–591
msgpack import import msgpack L42–42
+ TestJsonPersistenceV class class TestJsonPersistenceV L512–590
+ test_V1_stage_file_is_json method method test_V1_stage_file_is_json L515–529
+ test_V5_corrupt_json_clears_and_returns_empty method method test_V5_corrupt_json_clears_and_returns_empty L556–566
+ test_V6_write_empty_removes_json_file method method test_V6_write_empty_removes_json_file L568–578
+ test_V7_stage_version_is_3_in_json method method test_V7_stage_version_is_3_in_json L580–590
~ tests/test_cmd_index.py .py 1 symbol modified
~ tests/test_cmd_snapshot_hardening.py .py 1 symbol added, 2 symbols removed, 8 symbols modified
~ tests/test_code_stage.py .py 2 symbols added, 2 symbols removed, 2 symbols modified
test_corrupt_stage_msgpack_returns_empty method method test_corrupt_stage_msgpack_returns_empty L608–617
test_truncated_stage_msgpack_returns_empty method method test_truncated_stage_msgpack_returns_empty L619–627
+ test_corrupt_stage_json_returns_empty method method test_corrupt_stage_json_returns_empty L608–617
+ test_truncated_stage_json_returns_empty method method test_truncated_stage_json_returns_empty L619–627
~ tests/test_core_stat_cache.py .py 1 symbol added, 1 symbol removed, 2 symbols modified
test_load_corrupt_msgpack_returns_empty method method test_load_corrupt_msgpack_returns_empty L82–86
+ test_load_corrupt_json_returns_empty method method test_load_corrupt_json_returns_empty L82–87
~ tests/test_integrity_I6_snapshot_scale.py .py 2 symbols added, 2 symbols removed, 5 symbols modified
test_cache_file_is_msgpack method method test_cache_file_is_msgpack L85–97
msgpack import import msgpack L30–30
+ test_cache_file_is_json method method test_cache_file_is_json L85–96
+ _json import import _json L30–30
~ tests/test_shelf_msgpack_storage.py .py 15 symbols added, 15 symbols removed, 18 symbols modified
TestCliShelfSaveMsgpackLayout class class TestCliShelfSaveMsgpackLayout L470–560
test_drop_removes_msgpack_file method method test_drop_removes_msgpack_file L516–529
test_pop_removes_msgpack_and_restores_file method method test_pop_removes_msgpack_and_restores_file L546–560
test_save_creates_msgpack_file method method test_save_creates_msgpack_file L473–487
TestMsgpackRoundTrip class class TestMsgpackRoundTrip L236–278
test_bool_fields_survive method method test_bool_fields_survive L261–265
test_empty_dict_domain_state_survives method method test_empty_dict_domain_state_survives L273–278
test_list_fields_survive method method test_list_fields_survive L267–271
test_nested_snapshot_survives method method test_nested_snapshot_survives L254–259
test_none_fields_survive method method test_none_fields_survive L247–252
test_string_fields_survive method method test_string_fields_survive L239–245
test_empty_msgpack_file_skipped_by_list method method test_empty_msgpack_file_skipped_by_list L734–739
test_non_dict_msgpack_rejected_on_read method method test_non_dict_msgpack_rejected_on_read L855–864
test_oversized_msgpack_rejected_on_read method method test_oversized_msgpack_rejected_on_read L842–853
msgpack import import msgpack L48–48
+ TestCliShelfSaveHeaderJsonLayout class class TestCliShelfSaveHeaderJsonLayout L464–555
+ test_drop_removes_entry_file method method test_drop_removes_entry_file L510–523
+ test_pop_removes_entry_and_restores_file method method test_pop_removes_entry_and_restores_file L540–555
+ test_save_creates_entry_file method method test_save_creates_entry_file L467–481
+ TestJsonRoundTrip class class TestJsonRoundTrip L236–272
+ test_bool_fields_survive method method test_bool_fields_survive L258–261
+ test_empty_dict_domain_state_survives method method test_empty_dict_domain_state_survives L268–272
+ test_list_fields_survive method method test_list_fields_survive L263–266
+ test_nested_snapshot_survives method method test_nested_snapshot_survives L252–256
+ test_none_fields_survive method method test_none_fields_survive L246–250
+ test_string_fields_survive method method test_string_fields_survive L239–244
+ test_empty_entry_file_skipped_by_list method method test_empty_entry_file_skipped_by_list L729–734
+ test_non_dict_payload_rejected_on_read method method test_non_dict_payload_rejected_on_read L850–862
+ test_oversized_entry_rejected_on_read method method test_oversized_entry_rejected_on_read L837–848
+ _json import import _json L48–48
~ tests/test_snapshot_supercharge.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
test_symlink_in_snapshots_dir_is_skipped method method test_symlink_in_snapshots_dir_is_skipped L451–472
+ test_symlink_in_objects_dir_is_skipped method method test_symlink_in_objects_dir_is_skipped L451–475
~ tests/test_workdir_integrity.py .py 3 symbols removed, 2 symbols modified
_make_commit function function _make_commit L115–174
commits_dir import import commits_dir L54–54
snapshots_dir import import snapshots_dir L54–54
← Older Oldest on dev
All commits
Newer → Latest on dev

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:fa847c3cba6cb4da9b6f8e3f75f713b381470151517e459c9150a40dee21d3c2 --body "your comment"