gabriel / muse public
feat BREAKING dev
AI Agent gabriel · 114 days ago · May 18, 2026 · Diff

feat: Phase 3 — MPack wire format replaces msgpack bundle encoding

- Add build_wire_mpack() and parse_wire_mpack() to muse/core/mpack.py - Add _parse_pack_bytes() to muse/core/pack_store.py (inverse of _build_pack) - transport.py: detect b'MUSE' magic; parse with parse_wire_mpack, fall back to msgpack for legacy - 18 new tests in tests/test_mpack_wire.py covering round-trip, integrity, zero loose objects - 66 tests pass across all Phase 1/2/3 test files

sha256:315674a246fbad2e2437c85441cfff2e9e8578a9ea7987b1d9dd0c0cf25d4320 sha
+51 ~2 symbols
sha256:e263750f0140e80a565f84cf9b277c1200b8dc3dc3e8794faff13925eedd2688 snapshot
+51
symbols added
~2
symbols modified
0
dead code introduced
Semantic Changes 53 symbols
~ tests/test_mpack_wire.py .py 39 symbols added
+ _DT variable variable _DT L37–37
+ _MAGIC variable variable _MAGIC L38–38
+ _init_repo function function _init_repo L46–54
+ _make_mpack function function _make_mpack L57–90
+ CommitRecord import import CommitRecord L34–34
+ MPack import import MPack L30–30
+ annotations import import annotations L20–20
+ apply_mpack import import apply_mpack L30–30
+ blob_id import import blob_id L35–35
+ build_wire_mpack import import build_wire_mpack L30–30
+ compute_commit_id import import compute_commit_id L33–33
+ compute_snapshot_id import import compute_snapshot_id L33–33
+ datetime import import datetime L22–22
+ hashlib import import hashlib L23–23
+ json import import json L24–24
+ muse_dir import import muse_dir L32–32
+ parse_wire_mpack import import parse_wire_mpack L30–30
+ pathlib import import pathlib L25–25
+ pytest import import pytest L28–28
+ read_object import import read_object L31–31
+ struct import import struct L26–26
+ test_apply_wire_mpack_writes_no_loose_objects function function test_apply_wire_mpack_writes_no_loose_objects L265–273
+ test_legacy_msgpack_not_mistaken_for_wire_mpack function function test_legacy_msgpack_not_mistaken_for_wire_mpack L281–288
+ test_objects_section_identical_to_local_pack_bytes function function test_objects_section_identical_to_local_pack_bytes L236–257
+ test_parse_wire_mpack_raises_on_bad_magic function function test_parse_wire_mpack_raises_on_bad_magic L118–121
+ test_parse_wire_mpack_raises_on_corrupted_footer function function test_parse_wire_mpack_raises_on_corrupted_footer L124–129
+ test_wire_mpack_empty_all_sections function function test_wire_mpack_empty_all_sections L296–304
+ test_wire_mpack_footer_sha256_is_valid function function test_wire_mpack_footer_sha256_is_valid L110–115
+ test_wire_mpack_large_object_count function function test_wire_mpack_large_object_count L307–314
+ test_wire_mpack_round_trip_commit_fields function function test_wire_mpack_round_trip_commit_fields L176–185
+ test_wire_mpack_round_trip_commits function function test_wire_mpack_round_trip_commits L168–173
+ test_wire_mpack_round_trip_object_count function function test_wire_mpack_round_trip_object_count L156–160
+ test_wire_mpack_round_trip_objects_byte_exact function function test_wire_mpack_round_trip_objects_byte_exact L137–143
+ test_wire_mpack_round_trip_objects_readable_after_apply function function test_wire_mpack_round_trip_objects_readable_after_apply L146–153
+ test_wire_mpack_round_trip_snapshot_delta_add function function test_wire_mpack_round_trip_snapshot_delta_add L201–207
+ test_wire_mpack_round_trip_snapshots function function test_wire_mpack_round_trip_snapshots L193–198
+ test_wire_mpack_round_trip_tags function function test_wire_mpack_round_trip_tags L215–228
+ test_wire_mpack_starts_with_muse_magic function function test_wire_mpack_starts_with_muse_magic L98–101
+ test_wire_mpack_version_byte_is_one function function test_wire_mpack_version_byte_is_one L104–107
~ muse/core/mpack.py .py 11 symbols added
+ _WIRE_SEC_COMMITS variable variable _WIRE_SEC_COMMITS L913–913
+ _WIRE_SEC_OBJECTS variable variable _WIRE_SEC_OBJECTS L912–912
+ _WIRE_SEC_SNAPSHOTS variable variable _WIRE_SEC_SNAPSHOTS L914–914
+ _WIRE_SEC_TAGS variable variable _WIRE_SEC_TAGS L915–915
+ _WIRE_VERSION variable variable _WIRE_VERSION L911–911
+ _decode_records function function _decode_records L929–945
+ _encode_records function function _encode_records L918–926
+ build_wire_mpack function function build_wire_mpack L948–1003
+ _hashlib import import _hashlib L32–32
+ _struct import import _struct L35–35
+ parse_wire_mpack function function parse_wire_mpack L1006–1053
~ muse/core/pack_store.py .py 1 symbol added
+ _parse_pack_bytes function function _parse_pack_bytes L186–210
~ muse/core/transport.py .py 2 symbols modified
← Older Oldest on dev
All commits
Newer → Latest on dev

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