feat: Phase 2 fetch protocol — single presigned URL, 503 on unindexed objects
- wire_fetch_mpack rewritten to Phase 2 spec: POST /fetch returns {mpack_url, mpack_id, commit_count, object_count}; client GETs mpack directly from MinIO - Step 3 checks musehub_mpack_index coverage; raises FetchNotIndexedError (503) if any object is not yet indexed — no loose-object fallback - Step 4 loads bytes via content_cache first, MinIO fallback - Step 6 stores mpack ephemerally and presigns GET URL; TTL cleanup via ensure_future - FetchNotIndexedError caught in route handler → 503 + Retry-After: 60 - test_cdn5 deleted: tested pack_urls/pack_fetch path that no longer exists - test_lf2 updated: stub backend gains presign_get, objects indexed in DB, assertion checks mpack_id is not None and is sha256-prefixed
sha256:d8b4340f6da72076c5e3f7f346f584117dc31d2c567af15ad772c5e3cb04273e
sha
sha256:8941681b818cf6e79228f67ae6cbfb80ab13d3bfd1f9a41287c3cc1d30bd8b2a
snapshot
0 comments
To add a comment, use the Muse CLI:
muse hub commit comment sha256:d8b4340f6da72076c5e3f7f346f584117dc31d2c567af15ad772c5e3cb04273e --body "your comment"
No comments yet. Be the first to start the discussion.