feat(ssh): rich connection screen with live connection log - #83
Merged
Conversation
Replace the bare connecting/error/disconnected status view in the session tab with a host card (OS icon, label, host:port), an animated node -> line -> terminal graphic, a "Show logs" panel over a new per-session connection log, and Close/Retry actions. Connection steps (resolve, auth method, jump-host tunnel, host-key verify, established/failed, reconnect countdown) are recorded at the SessionProvider level, so SshService.connect's shared signature is untouched. Manual retry reuses the same tab/terminal and starts a fresh log. The card scrolls instead of overflowing on short panes. Refs #82
Adds integration_test/connecting_screenshots_test.dart (render-tree capture, no Screen-Recording permission) that pumps SessionConnectingView in its connecting and error+logs states, plus the captured PNGs under screenshots/01-terminal-ssh/. Refs #82
18 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Replaces the bare "Connecting to host…" spinner in the SSH session tab with a richer connection screen: a host card, an animated connection graphic, a per-session connection log behind a Show logs panel, and Close/Retry actions.
Closes #82
Changes
SessionConnectingView(app/lib/widgets/session_connecting_view.dart) — host card (OS icon avatar, label,SSH host:port), animated node → line → terminal graphic (spinning while connecting; red/grey on error/disconnected),Show logspanel,Closealways,Retryon error/disconnected. Scrolls (centered when it fits) so it never overflows on short/split panes.terminal_view.dart— every non-connected status now rendersSessionConnectingView; the old_statusViewis removed.app/lib/models/connection_log.dart) —ConnectionLogLevel+ConnectionLogLine, bounded tokMaxConnectionLogLines(200).SshSessiongainsconnectionLog/logConnection()/clearConnectionLog().SessionProvider— logs each connect step (resolve, auth method, jump-host tunnel, host-key verify, established/failed, reconnect countdown) without touchingSshService.connect's shared signature. NewreconnectSession()for manual retry reuses the same tab/terminal and starts a fresh log.Type of change
feat— new featurefix— bug fixrefactor/polish— no behavior changedocs— documentation onlytest— tests onlyrelease— version release tomasterHow was this tested?
cd app && flutter analyze— no new warnings on changed filescd app && flutter test— all tests pass (full suite, exit 0)integration_test/connecting_screenshots_test.dart)New tests: connection-log model (append/bounding/clear),
SessionConnectingView(states, Show logs toggle, Close/Retry callbacks, no overflow on a short pane), andSessionProviderconnection-log +reconnectSession(logs steps, clears on manual retry, no-op while connecting).Screenshots
Regenerate with:
cd app && flutter test integration_test/connecting_screenshots_test.dart -d macosChecklist