gabriel / musehub public
fix BREAKING task/wire-fetch-decompression #1 / 1
gabriel · 65 days ago · Apr 14, 2026 · Diff

fix: decompress legacy zlib objects in fetch/objects wire response

Objects pushed via the old wire path were stored zlib-compressed in the backend under the SHA-256 of their plain content. The fetch/objects endpoint was returning raw (compressed) bytes, causing muse clone/pull to store compressed bytes that fail muse verify (SHA-256 mismatch).

Fix: apply decompress_if_needed() in _pack_objects_response after backend.get() so all wire responses contain plain bytes regardless of how the object was stored.

Also removes stale docstring claiming LocalBackend/S3Backend fall back to old per-repo paths — that fallback was never implemented in S3Backend.

5 new tests covering: legacy compressed → decompressed on fetch, no double-decompression of plain objects, hash verification, mixed batch, missing object_id handled gracefully.

sha256:971b718869de4a5389b83fd238d5d5bacaa0124bc224bdb79a49368035a4ae4b sha
sha256:e652340306b7ae924a752f638e062b2d62da02195c4edb922ae9dfa0357a9e32 snapshot
← Older Oldest on task/wire-fetch-decompression
All commits
Newer → Latest on task/wire-fetch-decompression

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