progress: expose bytes_retryable so 'lost' counts only failed reads

Add PassProgress::bytes_retryable_total (NonTrimmed/NonScraped — failed
and awaiting retry), distinct from bytes_pending_total which also folds
in not-yet-attempted (NonTried) bytes. Set it at every construction site
(Sweep from the snapshot, Patch from stats, 0 for sequential/placeholder
paths). The disc-level 'lost' display in the CLI can now use
unreadable+retryable instead of unreadable+pending, so a healthy
in-progress rip no longer reports its unread remainder as lost.
This commit is contained in:
Matthew Jackson
2026-06-25 13:04:37 -07:00
parent 8f5968a18f
commit 6b3014f3e8
5 changed files with 26 additions and 8 deletions
+5
View File
@@ -56,6 +56,11 @@ pub struct PassProgress {
pub bytes_good_total: u64,
pub bytes_unreadable_total: u64,
pub bytes_pending_total: u64,
/// Bytes that FAILED to read and await retry (NonTrimmed/NonScraped) —
/// distinct from `bytes_pending_total` which also includes not-yet-attempted
/// (NonTried) bytes. Used so "lost" counts only failed reads, never unread
/// sectors.
pub bytes_retryable_total: u64,
pub bytes_total_disc: u64,
pub disc_duration_secs: Option<f64>,
/// How many bytes of the worst-case damage (unreadable + pending) fall