refactor(shelf): migrate storage from shelf.json to per-entry msgpack layout
- Add shelf_dir() path helper to muse.core.paths (single source of truth for .muse/shelf/ location; shelf_json_path() marked deprecated) - Add shelf_entry_path(), write_shelf_entry(), read_shelf_entry(), list_shelf_entries(), delete_shelf_entry() to muse.core.store mirroring commit/snapshot layout: .muse/shelf/<algo>/<hex>.msgpack - write_shelf_entry: symlink-swap attack guard on .muse/shelf/ dir; atomic temp-rename write via _write_msgpack_atomic - list_shelf_entries: newest-first sort, skips corrupt/oversized files - Rewrite shelf.py _load_shelf/_save_shelf: _load_shelf now delegates to list_shelf_entries; _save_shelf removed entirely; all callers updated - GC _collect_shelf_objects: glob */*.msgpack instead of reading shelf.json - Update test_cmd_shelf.py: replace all _save_shelf / shelf.json references with write_shelf_entry / _load_shelf; 154 tests pass - Add test_shelf_msgpack_storage.py: 68 tests across 8 tiers (unit, integration, e2e, stress, state, integrity, performance, security)
0 comments
muse hub commit comment sha256:8834372cf47334de37bf920bdca52290b6816f0f3a2d8b67f27ba717ee1418b0 --body "your comment"
No comments yet. Be the first to start the discussion.