fix: fetch/presign tip-only blob coverage + timing instrumentation
The old fetch/presign computed all_oids as the union of every blob across every historical snapshot — O(commits x files). For gabriel/muse with 200+ commits and 700+ files that meant unpacking 200+ manifests, computing thousands of unique OIDs, and generating thousands of presigned URLs, all within a single synchronous request that hit Cloudflare's 100s origin timeout.
Fix: only generate presigned URLs for blobs in the TIP snapshot (current HEAD). This bounds the presign set to N files regardless of history depth. Historical blobs are lazy-fetched on demand. Fresh clones get a working tree from tip; muse diff on old commits will need a subsequent fetch.
Also adds logger.warning timing at every step (commit_walk, commit_rows, snap_ids, tip_oids, have_oids, size_query, wire_commits, wire_snaps, presign gather, DONE) so any future timeout produces a complete step trace.
Semantic Changes
1 symbol
Files Changed
~1
970 in snapshot
0 comments
muse hub commit comment sha256:f4f731efef3f1cef7eeea99f8d5f49159110ec5c48137d9273b79e60a5aadf35 --body "your comment"
No comments yet. Be the first to start the discussion.