diff --git a/src/main.rs b/src/main.rs index 9d3cbb9..8189c3c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -479,6 +479,7 @@ impl Ashell { if self.active_tab.as_deref() == Some(tab_id.as_str()) { self.system_status = Some(reason.clone().into()); } + let is_graceful_exit = reason == "Terminal process exited" || reason == "SSH session exited"; if let Some(progress) = self.connection_progress.as_mut() { if progress.tab_id == tab_id { progress.lines.push(reason.clone().into()); @@ -487,6 +488,15 @@ impl Ashell { progress.title = t!("connection_failed").into(); progress.failed = true; } + } else if let Some(_) = session_label { + if !is_graceful_exit { + self.connection_progress = Some(ConnectionProgress { + tab_id: tab_id.clone(), + title: t!("connection_failed").into(), + lines: vec![reason.clone().into()], + failed: true, + }); + } } self.status = reason.into(); }