Fixed
- Weak-only ETags no longer authorize reuse of partial bytes. A compatible strong validator or matching Last-Modified metadata is required for safe continuation. Use
retrywhen canceled partial state cannot be validated. #194 - Switching from parallel chunks to a serial plan safely resets non-contiguous progress while retaining download identity. #195
- History cleanup is coordinated with resume and worker shutdown.
clearremoves only the historical records whose cleanup was checked. #196 - Ordinary final placement errors now report failed state and preserve journal-based recovery, including already-published files awaiting database completion. Recovery avoids duplicate publication. #197
- Concurrent keyboard quit and SIGINT no longer deadlock TUI shutdown. SIGINT and SIGTERM use one cancellation owner, with terminal restoration covered by real PTY tests. #204
- Go formatting, lint, vet, and race validation target project package roots, excluding unrelated website dependencies and ignored experiments. Formatting errors and required test failures still fail validation. #199
Changed
- Progress persistence uses bounded byte/time checkpoints instead of a SQLite update for every read. Partial data is synced before durable offsets; worker exit flushes dirty progress, and pause waits for the flush. Abrupt termination can replay uncheckpointed bytes. #198
- README and social banners retain the Argo name and descriptive copy with portable outlined editorial typography. #192
Measured performance
Three runs of the same local 64 MiB HTTP fixture with real SQLite and Btrfs storage produced these medians:
| Scenario | Before | After |
|---|---|---|
| One stream | 5.42 MB/s | 108.47 MB/s |
| Four chunks | 5.34 MB/s | 99.64 MB/s |
These results describe a persistence-heavy local workload, not an Internet speed guarantee. The fixture checks final content; timings include durable finalization. Filesystem, server, network, and machine load affect results. The repository now includes BenchmarkDownloadCheckpointThroughput for repeatable comparisons.
Validation
Regression coverage includes resume integrity, concurrent history operations, finalization faults, checkpoint failure/cancellation, real daemon SIGKILL recovery, and terminal restoration. Static RX policy behavior was measured in isolated Linux namespaces. Full adaptive closed-loop behavior across real NetworkManager transitions remains outside the measured coverage; no blanket network-performance guarantee is implied.