Daryaft v1.9.0
Daryaft v1.9.0
Daryaft v1.9.0 is a stable release focused on download retry and resume reliability hardening.
Highlights
- Added HTTP
408 Request Timeoutto retryable download responses. - Locked retry classification with deterministic tests.
- Added deterministic integration coverage for
408followed by successful retry. - Hardened resume behavior for oversized local partial files.
- Locked missing/corrupt resume sidecar behavior with tests.
- Documented safe restart behavior for
416, partial-overflow, and sidecar-loss cases. - Documented cancellation exit behavior.
- Documented that
429 Retry-Afteris not honored yet. - Added v1.9.0 roadmap/scope documentation.
Retry behavior
Daryaft now retries these HTTP statuses:
408
429
500
502
503
504
These common client-side statuses remain non-retryable:
400
401
403
404
410
429 Retry-After headers are not honored yet. Daryaft continues to use its standard exponential backoff.
Resume behavior
Daryaft already supported safe resume behavior for Range downloads.
This release additionally hardens the case where a local partial file is larger than the known remote file size. In that case, Daryaft restarts safely from byte 0 instead of appending to an unsafe partial file.
Resume behavior remains:
206 Partial Content: append when validators and content range are safe.200 OKafter aRangerequest: restart from byte0.416 Requested Range Not Satisfiable: restart from byte0as a safe default.- missing/corrupt sidecar metadata: restart safely or treat as non-resumable; no unsafe append.
Cancellation behavior
Cancellation exits non-zero and preserves partial download state where applicable.
Cancelled batch items remain cancelled, and remaining items are reported as not started.
Documentation
Updated or added:
docs/features/resume-and-retry.mddocs/command-reference.mddocs/usage.mddocs/operations/manual-qa.mddocs/roadmap/v1.9.0-download-reliability-hardening.mddocs/index.mdCHANGELOG.md
Known limitations
Retry-Afterheaders are not honored yet.416always restarts from byte0instead of treating the partial file as complete.- Concurrent batch downloads are not implemented.
- Config persistence is not implemented.
- Auto-update is still not implemented.
- GoReleaser Homebrew publishing remains disabled.
- Windows is not officially supported.
Upgrade
Homebrew:
brew update && brew upgrade daryaftGitHub binary users:
Download the matching archive from GitHub Releases.
Source users:
git pull
go build .