fix: add ghost guard to wire_push_presign (Layer 5)
wire_push_presign was checking DB only for 'already_stored', so ghost rows (DB present, storage absent) told the client to skip re-uploading. The client never sent those bytes; Phase-C then rejected the push.
Fix: for each DB-present object, call backend.exists() before placing it in already_stored. Ghost objects are demoted to the upload path (presigned URL or stream_these) so the client re-uploads the actual bytes.
Same ghost guard pattern as wire_push_confirm (Layer 2).
6 new tests: P5.1–P5.6.
sha256:4feba6d72278319d9831dd3d18b610e5976562d1e474b8630d55bdf2de1ba04b
sha
+61
~22
symbols
sha256:492e9ff5013f39703e875496ca3c5eb6abecb84db36032b07832591b5449e869
snapshot
+61
symbols added
~22
symbols modified
0
dead code introduced
Semantic Changes
83 symbols
+
test_P5_1_presign_ghost_guard_demotes_ghost
function
async_function test_P5_1_presign_ghost_guard_demotes_ghost L150–178
+
test_P5_2_fixed_presign_demotes_ghost_to_upload
function
async_function test_P5_2_fixed_presign_demotes_ghost_to_upload L186–210
+
test_P5_3_fixed_presign_keeps_present_object
function
async_function test_P5_3_fixed_presign_keeps_present_object L218–238
+
test_P5_4_fixed_presign_mixed_batch
function
async_function test_P5_4_fixed_presign_mixed_batch L246–278
+
test_P5_5_push_with_all_genuine_objects_passes
function
async_function test_P5_5_push_with_all_genuine_objects_passes L286–308
+
test_P5_6_ghost_still_rejected_by_phase_c
function
async_function test_P5_6_ghost_still_rejected_by_phase_c L316–342
~
code@L9
~
code@L23
+
Layer 5 — Has/Wants Dance + wire_push_presign DB-only check
section Layer 5 — Has/Wants Dance + wire_push_presign DB-only check L340–450
Older
fix: eliminate ghost objects — confirm guard, decompress bugs, r…
sha256:f1534b4412ad996d45cc3fbbc13fe61e6595f511ef02a9ccfa38ea9adb9c9bc2
All commits
Newer
fix: Phase-C trusts content-addressed chain for previously-commi…
sha256:7bd79167159ccf7e5a18936dc5ff246c8ea650d2a1d2fd3b79860e26f607fb02
0 comments
To add a comment, use the Muse CLI:
muse hub commit comment sha256:4feba6d72278319d9831dd3d18b610e5976562d1e474b8630d55bdf2de1ba04b --body "your comment"
No comments yet. Be the first to start the discussion.