gabriel / musehub public
fix minor main #28 / 33
gabriel · 63 days ago · Apr 11, 2026 · Diff

fix: delete legacy per-repo object paths, migrate to global content-addressed storage

All objects were previously stored at <objects_dir>/<repo_id>/<object_id>. After the global-storage migration they live at <objects_dir>/objects/<object_id>. The transition fallback ('_legacy_path', '_legacy_key') was left in place while old data persisted. 12,372 legacy objects exist locally; same on staging.

Changes: - deploy/migrate_objects.py: one-time migration script — copies all files from <objects_dir>/<repo_id>/ to <objects_dir>/objects/ then reports counts. Idempotent; safe to re-run. Already executed locally (12,372 moved, 0 errors). - LocalBackend: remove _legacy_path, legacy fallbacks in get/get_batch/exists/stream. - S3Backend: remove _legacy_key, legacy fallbacks in get/exists/stream. get() is now a single S3 round-trip (no double-try-key sequence). - Run migrate_objects.py on staging before deploying this build.

sha256:b70e6ca970a21f9c6fdafa122bd1fc12f81fa2034184ec071e2d29826c0b7b62 sha
sha256:84fe05cd2f245607e33e40e0b704ee1fcaa5657b9c64bc2b74bd115123b6a8c1 snapshot

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