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
sha256:492e9ff5013f39703e875496ca3c5eb6abecb84db36032b07832591b5449e869
snapshot
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.