feat(tui): surface the failure reason on failed downloads

Carry a human-readable reason on DownloadStatus::Failed so it flows
through the existing status channel to the TUI. The download Info pane
now shows an Error line for a failed download (connect failure, peer
disconnect, truncated transfer, peer-reported upload failure, or the
underlying transfer error). Failures without a known reason render as
before.
This commit is contained in:
michel
2026-07-19 19:36:15 +02:00
parent 4809dd7059
commit ae28f4236a
9 changed files with 114 additions and 34 deletions
+3 -2
View File
@@ -114,7 +114,7 @@ impl Download {
matches!(
self.status,
DownloadStatus::Completed
| DownloadStatus::Failed
| DownloadStatus::Failed(_)
| DownloadStatus::TimedOut
)
}
@@ -159,7 +159,8 @@ pub enum DownloadStatus {
total_bytes: u64,
},
Completed,
Failed,
/// Failed, optionally with a human-readable reason.
Failed(Option<String>),
TimedOut,
}
impl Transfer {