fix: streaming push never sends delta+zlib — only presign path may delta
Delta bases were chosen from server commit manifests with no storage confirmation. A ghost base (in DB, absent from MinIO) caused: ❌ Push failed: delta base sha256:… not found in storage
Fix: extract build_push_objects(already_stored=). Delta encoding only fires when the base oid is in already_stored — a storage-confirmed set from the presign response. Streaming path passes already_stored=set() so all objects go as full raw objects. No more ghost-base failures.
Tests D1–D4 pin the invariant.
sha256:4f6846d439b05714369d5727ece1c4c9e7031b8565b213565de923145848623e
sha
+25
~1
symbols
sha256:8e89371155086ad60a3090512faa3b0ac5bcc2c4665060776b306b3f6c471749
snapshot
+25
symbols added
~1
symbol modified
0
dead code introduced
Semantic Changes
26 symbols
+
test_d1_streaming_path_produces_no_delta_payloads
function
function test_d1_streaming_path_produces_no_delta_payloads L122–159
+
test_d2_successive_versions_sent_as_full_objects
function
function test_d2_successive_versions_sent_as_full_objects L166–198
+
test_d3_presign_path_may_use_delta_when_base_is_confirmed
function
function test_d3_presign_path_may_use_delta_when_base_is_confirmed L205–238
+
test_d4_structural_streaming_branch_no_delta
function
function test_d4_structural_streaming_branch_no_delta L245–262
0 comments
To add a comment, use the Muse CLI:
muse hub commit comment sha256:4f6846d439b05714369d5727ece1c4c9e7031b8565b213565de923145848623e --body "your comment"
No comments yet. Be the first to start the discussion.