gabriel / muse public
feat BREAKING push feat/streaming-push #1 / 1
gabriel · 60 days ago · Apr 16, 2026 · Diff

feat(push): MWP v2 streaming push client — 8-tier TDD tests, 42/42 green

Replace the five-phase MWP v1 push sequence with a single bidirectional msgpack stream (push_stream on HttpTransport, _push_stream in push.py).

Transport (muse/core/transport.py — HttpTransport.push_stream): - Builds a single POST body: HEADER | OBJECT* | COMMIT_PACK | END - Objects encoded as SFRAME_OBJECT frames (raw or zlib) - Streams response with msgpack.Unpacker, yields PROGRESS to stderr, raises on ERROR, returns (commits_pushed, objects_pushed) on RESULT - All MWP v1 methods deleted (push_pack, filter_objects, etc.)

CLI (muse/cli/commands/push.py — run → _push_stream): - run() calls _push_stream instead of deleted _push_mwp - Dead code removed: get_remote_pack_origin import, max_workers, pack_origin resolution block - Module docstring updated to describe MWP v2

Tests (tests/test_cli_stream_push.py — 42 tests, 8 tiers): T1 Unit — frame construction helpers (header/object/commit_pack/end) T2 Unit — response parser (progress passthrough, error raise, result) T3 Comp — object batching logic (size limits, batch boundaries) T4 Comp — commit serialization (WireCommit fields, parent linking) T5 Svc — _push_stream() with transport mock (happy path + errors) T6 Intg — HttpTransport._open_url mock (verifies actual HTTP frames) T7 Route — CLI runner invoking push command end-to-end T8 E2E — full push simulation with result frame verification

sha256:ed79ffa437bebcf282be2c4ba23f44bee17ed9c730a89c5fbacb7e985a559167 sha
sha256:50ba2927e0f15a0f8898e18f08a754daca35ac45608024910d3615dbe20086fd snapshot
← Older Oldest on feat/streaming-push
All commits
Newer → Latest on feat/streaming-push

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