Add SSH jump routes and release Core 2.13.0 - #26
Merged
Merged
Conversation
## Why Saved SSH sessions need reusable jump paths while preserving browser key ownership, host trust, and access to the final terminal. ## What changed - Store independently referenced route nodes and selectable Entries with revision-checked edits, migration, import remapping, and explicit cycle repair. - Connect through up to three jump hosts and reuse the final SSH transport for Terminal, Files, and Agent Tunnel without a direct fallback. - Bind signing, cancellation, and host-key retry to their connection attempts while preserving direct localhost behavior and per-node credential ownership. - Keep passwords out of settings, exports, and connection diagnostics. ## Testing - Verify shared editing, cycle repair, migration, concurrent storage writes, imported credentials, signing ownership, retry correlation, and redaction in Chromium. - Exercise real multi-hop SSH, mixed key/password authentication, per-hop trust, SFTP, reverse forwarding, Agent Tunnel, failed forwarding, and cancellation. - Pass the repository headless and 49-case browser regression suites.
## Why Route connections require users to supply every password in the initial form, and host-key confirmation restarts already authenticated jumps. ## What changed - Show per-site login cards with completed, current, and waiting states. - Pause host verification and password entry on the existing transport. - Bind replies and setup retries to the initiating tab and connection. - Preserve browser keys, localhost key setup, and password fallback. ## Testing Exercise live password routes, browser-signed keys across three jumps, reverse forwarding, rejected passwords, host-key changes, cancellation, stale replies, and background tabs. Run the headless smoke suite and SSH settings, history, keys, route editor, and agent tunnel browser checks.
## Why SSH preparation shares direct fields with saved routes, making endpoint and authentication selection ambiguous. ## What changed - Separate Direct connect and Saved routes while retaining per-site login cards. - Save independent node credentials atomically and expose new public keys only after saving. - Inspect and forget host fingerprints within bound direct or node contexts. ## Testing - Cover independent drafts, zero-jump routes, key lifecycle, legacy profiles, and stale fingerprint confirmations. - Verify three distinct browser credentials after reload, multi-hop SSH, SFTP, reverse forwarding, and headless regressions.
## What changed - Share compact Use key, public-key and copy controls across Direct and route nodes. - Keep generated keys temporary until Connect saves the opted-in profile or route atomically. - Retain route edits with Done and preserve the previous draft when cancelling the editor. - Bind temporary signers to their connection attempt and defer history writes while other logins are pending. ## Testing - Exercise real Direct and multi-hop key logins, public-key copying, explicit saving and temporary-key history handling. - Verify concurrent login history, background authentication failure and private-key exclusion from wire data. - Check route editing, legacy keys, host trust retries, staged login, related browser behavior and syntax.
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.
What changed
Testing