gabriel / muse public
fix BREAKING main #20 / 44
AI Agent gabriel · 32 days ago · May 8, 2026 · Diff

fix: use canonical MWP wire field names in push O-frames

split_object_into_oc_frames was emitting 'object_id', 'encoding', and 'base_id' — the server push handler reads 'id', 'enc', and 'base' (same names mpack.py has always written for fetch frames). When a delta+zlib object was pushed via the stream path, enc fell through to 'raw', the server hashed the raw delta bytes instead of the reconstructed content, and sha256(delta_bytes) != declared_object_id → hash mismatch.

Also fix client-side fetch receive path: was reading 'base_id' from server O-frames; server writes 'base'.

Add TestSplitObjectIntoOcFrames to pin all three field names as a wire contract so a future rename breaks the tests before it breaks pushes.

sha256:131a9fc3542965349f2ee21922782a57d97e842418b432abc6976064b64426f1 sha
sha256:ebe5153947b3d15f5e88bd8b54324d1904e672d482e98ea626b0c0d0dba00575 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:131a9fc3542965349f2ee21922782a57d97e842418b432abc6976064b64426f1 --body "your comment"