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
+40
~10
symbols
sha256:ebe5153947b3d15f5e88bd8b54324d1904e672d482e98ea626b0c0d0dba00575
snapshot
+40
symbols added
~10
symbols modified
0
dead code introduced
Semantic Changes
50 symbols
+
Level 0 — Unit: server correctly parses an O-frame
section Level 0 — Unit: server correctly parses an O-frame L90–100
+
Level 1 — Unit: delta+zlib reconstruction produces correct hash
section Level 1 — Unit: delta+zlib reconstruction produces correct hash L100–110
+
Level 2 — Integration: push a single delta object through stream path
section Level 2 — Integration: push a single delta object through stream path L110–118
+
Level 3 — End-to-end: muse push staging main with delta objects
section Level 3 — End-to-end: muse push staging main with delta objects L118–128
+
Root cause: field name mismatch between client and server
section Root cause: field name mismatch between client and server L50–86
+
The push used the stream path (not presign)
section The push used the stream path (not presign) L23–28
+
test_chunked_object_first_chunk_uses_enc
method
method test_chunked_object_first_chunk_uses_enc L640–650
+
test_delta_object_uses_base_not_base_id
method
method test_delta_object_uses_base_not_base_id L621–631
+
test_raw_object_uses_enc_not_encoding
method
method test_raw_object_uses_enc_not_encoding L613–619
+
test_raw_object_uses_id_not_object_id
method
method test_raw_object_uses_id_not_object_id L603–611
~
_Request
Older
test: fix test suite for sha256: prefix, stderr/stdout split, an…
sha256:e35d3b4bd7990e3b09d4ae6312c4f16e89e2756ba6a56e0fd9b4788cda8c60a8
All commits
Newer
debug: update push hash mismatch doc — local verified, staging i…
sha256:38167901f0c4b5c714c56e85f444405ec51a358c3e5a9fea5f812245130cbdd1
0 comments
To add a comment, use the Muse CLI:
muse hub commit comment sha256:131a9fc3542965349f2ee21922782a57d97e842418b432abc6976064b64426f1 --body "your comment"
No comments yet. Be the first to start the discussion.