Skip to content

v0.3.2

Choose a tag to compare

@goshitsarch-eng goshitsarch-eng released this 11 Mar 22:15
· 10 commits to main since this release

Fixed

  • Downloads bombing out on mid-stream connection drops: body/decode errors from reqwest were classified as non-retryable, making the retry loop dead code for the most common failure mode — now correctly classified as retryable ConnectionReset
  • Double retryability bug in From<reqwest::Error>: the From impl computed a narrow retryable set instead of using the standard constructor which also covers ConnectionReset, Unreachable, 408, 429, and 5xx
  • Segment errors hardcoded as non-retryable: segment request send and stream errors now classify correctly via proper reqwest error conversion
  • Segmented download aggregate error always non-retryable: now preserves retryability from underlying segment errors
  • Single-stream downloads never retrying on stream errors: added automatic retry with resume (Range requests) or restart from byte 0 (no range support)
  • Segment progress lost on failure: segment progress is now saved to both memory cache and database before marking failure
  • Sibling segments wasting bandwidth after fatal error: added child cancellation token that stops siblings promptly on non-retryable errors

Changed

  • Default max_retries increased from 3 to 5

Added

  • 6 new integration tests for retry/resume edge cases