Problem Statement
While an SSH session is establishing, the tab shows only a bare orange "Connecting to host…" spinner. There is no host context, no visibility into what the connection is doing, and on failure the user gets a one-line error with no way to retry from the tab. When a connect hangs or fails (host-key prompt, auth, jump-host tunnel), there is nothing to inspect.
Proposed Solution
Replace the plain connecting/error/disconnected status view (inside the session tab) with a richer connection screen:
- A host card: OS icon avatar, host label, and
SSH host:port subtitle.
- An animated node → line → terminal connection graphic (spinning while connecting; red/grey for error/disconnected).
- A Show logs panel backed by a per-session connection log that records each step (resolve, auth method, jump-host tunnel, host-key verify, established / failed, reconnect countdown).
- Close always, plus Retry on error/disconnected (manual retry reuses the same tab/terminal and starts a fresh log).
Applies to SSH terminal sessions. Local shells connect instantly; RDP/VNC already have their own workspaces.
Alternatives Considered
- Keeping the minimal spinner — rejected: no diagnostics, no retry, poor UX on failure.
- A modal overlay over the whole app — rejected: heavier and inconsistent with how SSH/RDP currently render connection state inside the tab.
- Capturing dartssh2
printDebug output — rejected: too noisy and hard to scope per-session across jump chains; provider-level step logging is cleaner.
Additional Context
Desktop (macOS / Windows / Linux). The connection-log capture is implemented at the SessionProvider level (no change to the widely-used SshService.connect signature).
Problem Statement
While an SSH session is establishing, the tab shows only a bare orange "Connecting to host…" spinner. There is no host context, no visibility into what the connection is doing, and on failure the user gets a one-line error with no way to retry from the tab. When a connect hangs or fails (host-key prompt, auth, jump-host tunnel), there is nothing to inspect.
Proposed Solution
Replace the plain connecting/error/disconnected status view (inside the session tab) with a richer connection screen:
SSH host:portsubtitle.Applies to SSH terminal sessions. Local shells connect instantly; RDP/VNC already have their own workspaces.
Alternatives Considered
printDebugoutput — rejected: too noisy and hard to scope per-session across jump chains; provider-level step logging is cleaner.Additional Context
Desktop (macOS / Windows / Linux). The connection-log capture is implemented at the
SessionProviderlevel (no change to the widely-usedSshService.connectsignature).