Skip to content

支持从~/.ssh/config导入ssh配置#218

Open
yulianjie wants to merge 6 commits into
jeff141:mainfrom
yulianjie:dev
Open

支持从~/.ssh/config导入ssh配置#218
yulianjie wants to merge 6 commits into
jeff141:mainfrom
yulianjie:dev

Conversation

@yulianjie

Copy link
Copy Markdown

No description provided.

jeff141 and others added 5 commits July 4, 2026 20:10
解压多文件压缩包等高频刷屏场景下,其他服务器无法操作、无法输入命令。
将全局终端缓冲区锁按标签页拆分,一个会话刷屏不再阻塞其他会话的键盘输入。
把 vt100 解析从 UI 线程移到事件泵线程,并对渲染做合并与约 30fps 节流,避免事件队列被淹没。
后台标签只解析不渲染,切回时补渲染;每次更新终端后主动请求重绘,不再依赖切换窗口触发刷新。
修复在 UI 线程内嵌套调用 invoke_from_event_loop 导致的死锁(打开第二个标签即卡死的真凶)。

fix: prevent UI freeze under heavy multi-session output (jeff141#209)

When one session floods output (e.g. unzipping many files), other servers became unusable and could not accept input.
Split the global terminal buffer lock per tab so a flood on one session no longer blocks keyboard input on another.
Move vt100 parsing off the UI thread onto the event-pump threads, and coalesce/throttle renders to ~30fps so the event loop can't be drowned.
Background tabs only ingest and are rendered on switch-back; each terminal update now requests a redraw instead of relying on window switching to refresh.
Fix a deadlock from nesting invoke_from_event_loop inside a UI callback (the real cause of the freeze when opening a second tab).

Co-authored-by: Cursor <cursoragent@cursor.com>
无会话时快速连接卡片是自然高度并靠上、下方用 spacer 撑底,建立第一个会话后卡片撑满,导致面板高度突然跳变。
现让卡片始终撑满剩余高度,空状态占位区随之拉伸填充,与会话列表填充方式一致,建会话前后高度保持一致、不再跳动。

fix(ui): stop welcome session panel height jump on first session (jeff141#214)

The quick-connect card sat at natural height with a bottom spacer when empty, then stretched to fill once the first session existed, causing the panel height to jump.
The card now always fills the remaining height and the empty-state placeholder stretches to match the session list, so the height stays stable before and after adding a session.

Co-authored-by: Cursor <cursoragent@cursor.com>
会话现在可以指定另一个已保存的 SSH 会话作为跳板机(类似 OpenSSH 的 ProxyJump):先连上跳板并认证,在其上开一条 direct-tcpip 通道到目标机,再在通道上完成目标机的 SSH 握手。终端与 SFTP 两条连接都会经跳板走,跳板连接在整个会话期间保活、会话关闭时一并断开。
跳板复用被引用会话自身的主机/账号/密钥/keyboard-interactive 认证,未存凭据时沿用原有登录弹窗;自动忽略指向自己或已删除会话的无效引用。当前仅支持单级跳板。
会话对话框「高级」区(仅 SSH)新增「跳板机(可选)」下拉,可从其它已保存的 SSH 会话中选择,默认直连。

feat: add SSH jump host (bastion) support (jeff141#211)

A session can now tunnel through another saved SSH session as a jump host (like OpenSSH's ProxyJump): connect and authenticate to the jump, open a direct-tcpip channel to the target, and run the target's SSH handshake over it. Both the shell and SFTP connections go through the jump, which is kept alive for the whole session and torn down when it closes.
The jump reuses the referenced session's own host/user/key/keyboard-interactive auth, falling back to the usual login prompt when no credentials are stored; dangling or self references are ignored. Single hop only for now.
The session dialog's Advanced section (SSH only) gains an optional "Jump host" dropdown listing other saved SSH sessions, defaulting to a direct connection.

Co-authored-by: Cursor <cursoragent@cursor.com>
SSH 跳板机(堡垒机)支持 (jeff141#211)。 会话可指定另一个已保存的 SSH 会话作为跳板机(类似 OpenSSH 的 ProxyJump):先连上跳板并认证,在其上开一条 direct-tcpip 通道到目标机,再完成目标机的 SSH 握手。终端与 SFTP 两条连接都经跳板走,跳板连接在整个会话期间保活、会话关闭时一并断开。跳板复用被引用会话自身的主机/账号/密钥/keyboard-interactive 认证,未存凭据时沿用原有登录弹窗;自动忽略指向自己或已删除会话的无效引用;当前仅支持单级跳板。会话对话框「高级」区(仅 SSH)新增「跳板机(可选)」下拉。
修复 / Fixed
修复多会话大量输出导致界面卡死 (jeff141#209)。 将 VT100 解析移出 UI 线程、按约 30fps 节流渲染、合并输出块并改用按标签页独立的缓冲锁,某台服务器解压大量文件时不再拖垮其它会话与整个界面。
修复欢迎页会话面板首次建会话时高度跳变 (jeff141#214)。 快速连接卡片现在始终撑满剩余高度、空状态占位区随之拉伸,建会话前后面板高度保持一致、不再跳动。
Added
SSH jump host (bastion) support (jeff141#211). A session can tunnel through another saved SSH session as a jump host (like OpenSSH's ProxyJump): connect and authenticate to the jump, open a direct-tcpip channel to the target, and run the target's SSH handshake over it. Both the shell and SFTP connections go through the jump, which is kept alive for the whole session and torn down when it closes. The jump reuses the referenced session's own host/user/key/keyboard-interactive auth, falling back to the usual login prompt when no credentials are stored; dangling or self references are ignored; single hop only for now. The session dialog's Advanced section (SSH only) gains an optional "Jump host" dropdown.
Fixed
Fix UI freeze on heavy output across multiple sessions (jeff141#209). VT100 parsing moved off the UI thread, rendering throttled to ~30fps, output chunks coalesced, and per-tab buffer locks adopted, so unzipping many files on one server no longer stalls other sessions or the whole UI.
Stop the welcome session panel height jump on the first session (jeff141#214). The quick-connect card now always fills the remaining height and the empty-state placeholder stretches to match, keeping the panel height stable before and after adding a session.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants