Xuz
837ccb7f89
端口转发(本地 / 远程 / 动态),「会话」改称「主机」,同一数据目录只运行一个实例
端口转发
- 标题栏「ShellRS」后面两个图标切换左侧栏:主机列表 / 端口转发列表。
侧栏是一个面板(workspace::Sidebar)里的两个列表,「设置」页脚两边
都有;有转发在跑时图标旁显示数量
- 三种转发:本地(direct-tcpip)、远程(tcpip-forward)、动态(手写的
SOCKS5 / SOCKS4 / 4a)。每条规则经由一台已保存的主机,启动时自己建
一条 SSH 连接,不计入主机的连接状态,「断开连接」不停它;删除主机或
分组连同规则一起删,确认框写明数量
- 本地 / 动态转发先监听再登录,端口被占用在任何问答之前就报出来;
断线后按 1、3、10 秒自动重连三次,重连不弹问答;断线靠 SSH 处理器被
丢弃来发现
- 规则和主机同库:schema 升到 8,新增 forwards 表和 7→8 的迁移步骤
- 列表:搜索、启停按钮、状态(连接中 / 运行中及连接数 / 重连 / 失败
原因)、右键菜单、↑↓ 与回车;规则可设「启动 ShellRS 时自动开启」
- 配置对话框:一行三张类型卡片、随表单填入地址的示意图、一句话说明
和一直循环的流向动画(gpui-kit 的 animate_keyframes)。示意图里的
服务器按角色叫「SSH 服务器」;「经由主机」默认留空;远程转发填了非
回环地址时提示服务器要设置 GatewayPorts
- 测试:进程内 russh 服务器加回显服务驱动真实工作线程(protocol_tests),
UI 测试注入 FakeForwardProvider
界面文案
- 左侧列表里保存的一项从「会话」改称「主机」(量词「台」),主机对话框
里填 IP / 域名的字段改叫「地址」;代码标识符仍是 Session,外部 CLI 的
英文说明和 session_not_found 不变
- 所有对话框点外面不再关闭,只能用取消、关闭按钮或 Esc
单实例与启动
- 再次打开 ShellRS 时把已有窗口调到前面、新进程退出:启动图形界面前
先连外部 CLI 的套接字发 Request::Activate,不受「启用外部 CLI」开关
影响
- 修正两处启动即崩溃:数据库 / 设置读不出来、外部 CLI 启动失败时,在
窗口的 Root 挂上之前弹通知会 panic,改为 notify_once_open 延后
其他
- parse_port、confirm_delete 移到 shared/dialog.rs;SshConnector 增加
connect_forwarding 与 is_network_error
- README、CLAUDE.md、AGENTS.md 同步
2026-10-01 00:46:51 +08:00
..
2026-09-25 14:00:21 +08:00
2026-10-01 00:46:51 +08:00