feat: client-side fetch presign routing in pull and clone
- Add HttpTransport.fetch_presign_or_stream(): tries POST /fetch/presign first; if server returns presign=True downloads bundle directly from R2 presigned URL, bypassing Cloudflare streaming timeout; falls back to fetch/stream otherwise - Wire fetch_presign_or_stream into pull.py (via getattr for safe fallback) - Wire fetch_presign_or_stream into clone.py for full clones (depth=None); shallow clones (depth set) still use fetch/stream - Add _FETCH_PRESIGN_OBJECT_THRESHOLD=500 and _FETCH_PRESIGN_BYTE_THRESHOLD=50MB to pull.py — must match server-side constants - 11 TDD tests (FPR0-FPR10) covering threshold routing, presign/stream fallback, on_object dispatch, FetchStreamResult shape, error propagation, constant match - Fix test_cli_clone.py, test_cmd_clone_hardening.py, test_cmd_pull_hardening.py: add fetch_presign_or_stream side_effect alongside fetch_stream; fix stale compute_commit_id(repo_id=...) kwarg that no longer exists in the signature
0 comments
muse hub commit comment sha256:5046dc6fc91d1df74486fb3c4a5b194b6e3b9a062c3e0cb18e8a31ecb9285b73 --body "your comment"
No comments yet. Be the first to start the discussion.