docs: roadmap v2 — M3 SSH productization (Terminal/SSH split + Wave-style server monitoring), renumber SFTP to M4
This commit is contained in:
1 parent
0be65370f6
commit
f97edbb016
1 file changed
+35
-8
+35
-8
@@ -9,10 +9,11 @@
|
||||
| M1 | 本地终端 + 分屏 + 主题/字体 + 设置持久化 | ✅ 已完成(v0.1) |
|
||||
| M2 | SSH 远程会话 + 连接管理器 | ✅ 已完成(v0.2) |
|
||||
| M2.5 | 关键词高亮(提前自 M4)+ 系统设置(自启动/阻止休眠)+ UI 打磨 | ✅ 已完成(v0.2.1) |
|
||||
| M3 | SFTP 文件管理 + 传输面板 | 📋 下一步 |
|
||||
| M4 | 命令历史/命令库/补全 + 会话日志(高亮已提前完成) | |
|
||||
| M5 | 广播输入 + ZMODEM + 快捷输入面板 + 快捷键系统 | |
|
||||
| M6 | 打包分发(electron-builder + 自动更新) | |
|
||||
| M3 | SSH 产品化:Terminal/SSH 分离 + 服务器硬件监控(Wave 风格) | 📋 下一步 |
|
||||
| M4 | SFTP 文件管理 + 传输面板(复用 M3 的 SSH 连接) | |
|
||||
| M5 | 命令历史/命令库/补全 + 会话日志(高亮已提前完成) | |
|
||||
| M6 | 广播输入 + ZMODEM + 快捷输入面板 + 快捷键系统 | |
|
||||
| M7 | 打包分发(electron-builder + 自动更新) | |
|
||||
|
||||
## M2 — SSH 远程会话 ✅
|
||||
|
||||
@@ -25,14 +26,40 @@
|
||||
- 待解锁后的 GUI 验收:双击书签连接、指纹弹窗交互、断线提示
|
||||
- 已知限制:SSH 面板暂不支持作为分屏参照(总在新标签打开);连接中 Modal 不可取消;agent 认证未在本机验证
|
||||
|
||||
## M3 — SFTP 文件管理(下一步)
|
||||
## M3 — SSH 产品化:Terminal/SSH 分离 + 服务器硬件监控(下一步)
|
||||
|
||||
### A. Terminal 与 SSH 功能分离(产品形态)
|
||||
|
||||
- [ ] 侧栏双分区:「终端」(本地)与「SSH 服务器」各自独立区块(独立折叠、独立头部、独立计数)
|
||||
- [ ] SSH 会话标识:标签页带服务器图标/主机名前缀,本地与 SSH 标签视觉区分
|
||||
- [ ] 新建入口分离:图标条「+」只建本地终端;SSH 会话仅从服务器列表发起(双击连接,右键:连接/编辑/删除/复制主机)
|
||||
- [ ] SSH 区增加「最近会话」(按 lastConnectedAt 排序,一键重连)
|
||||
- [ ] (可选增强)工作区模式:本地/SSH 两个独立工作区布局,互不混排
|
||||
- 验收:不开侧栏也能一眼区分标签是本地还是 SSH;图标条「+」只出本地终端
|
||||
|
||||
### B. 服务器硬件监控(参考 Wave Terminal 的 sysinfo 块)
|
||||
|
||||
技术可行性:✅ 高。XTerminal 逆向已证实路线 1 的完整链路(ensureSetupServerStatusFiles / getServerStatsByQuery / getServerProcessList)。
|
||||
|
||||
- **路线 2 起步(零部署)**:ssh2 `exec` 读 Linux 标准接口——CPU `/proc/stat`(双采样算占用率)、内存 `/proc/meminfo`、负载 `/proc/loadavg`、磁盘 `df -kP`、网络 `/proc/net/dev`(双采样算速率)、运行时间 `/proc/uptime`
|
||||
- **路线 1 增强(部署脚本)**:首次连接部署 `~/.openterminal/sysinfo.sh`(纯 shell 输出 JSON,Linux/macOS 通用),解锁进程 Top 列表
|
||||
|
||||
数据面:ssh2 `conn.exec` → stdout JSON → 主进程解析 → `STATS:{id, stats}` 广播 → 渲染层
|
||||
|
||||
- [ ] `src/main/sysinfo.ts`:按会话轮询(默认 3s,可配置),会话关闭/断线自动停止;解析容错
|
||||
- [ ] 契约:`shared/sysinfo.ts`(SysinfoSample + STATS 通道 + 面板开关事件)
|
||||
- [ ] UI:SSH 会话右侧可折叠监控面板——CPU 多核条形、内存/磁盘用量条、网络上下行、负载/运行时间
|
||||
- [ ] (路线 1)进程 Top 列表 + 结束进程
|
||||
- 验收:连接后 ≤3s 看到实时 CPU/内存;断开会话监控自动停止;服务器跑 `stress` 曲线明显上升
|
||||
|
||||
## M4 — SFTP 文件管理(复用 M3 的 SSH 连接)
|
||||
|
||||
- [ ] `src/main/sftp.ts`:ssh2 SFTP 封装(readdir/stat/rename/mkdir/rm/mv,大文件分块传输 + 进度事件)
|
||||
- [ ] 双栏界面(本地 ↔ 远程)+ 拖拽上传/下载 + 传输面板(队列/暂停/取消)
|
||||
- [ ] 右键菜单:压缩/解压(tar.gz)、编辑远程文件(Monaco,下载-编辑-回传)
|
||||
- 验收:100MB 文件传输进度流畅、可取消续传
|
||||
|
||||
## M4 — 命令系统与会话日志
|
||||
## M5 — 命令系统与会话日志
|
||||
|
||||
- [ ] 命令历史(sqlite + better-sqlite3,按会话去重)
|
||||
- [ ] 命令库(分组 + 参数变量 `{{param}}` + 一键运行/粘贴)
|
||||
@@ -41,7 +68,7 @@
|
||||
- [x] ~~关键词高亮~~(✅ 已提前完成:highlightEngine 流式 ANSI 注入 + 11 条预设 + 设置页管理,见 M2.5)
|
||||
- 验收:补全 ↑↓/Tab/Esc 交互与 XTerminal 一致
|
||||
|
||||
## M5 — 多终端协同
|
||||
## M6 — 多终端协同
|
||||
|
||||
- [ ] 广播输入(toggleBroadcast):选中多个会话同步键入
|
||||
- [ ] 快捷输入面板(Quick Input):右下角浮层 = 命令输入 + 快捷命令 + 最近命令
|
||||
@@ -49,7 +76,7 @@
|
||||
- [ ] 快捷键系统:增减字号、切换上下个终端、全局快捷键(globalShortcut)
|
||||
- 验收:3 个分屏同步执行命令;rz 传输成功
|
||||
|
||||
## M6 — 打包与分发
|
||||
## M7 — 打包与分发
|
||||
|
||||
- [ ] electron-builder:nsis 安装包(Windows 优先,x64/arm64)
|
||||
- [ ] 原生模块处理:node-pty 已用 @lydell 预编译版,无需 rebuild
|
||||
|
||||
Reference in new issue
Block a user