docs(plan): ROADMAP 勾选已完成里程碑并新增 2026-10-21 backlog

- ROADMAP 修正过期限制说明,M3-A/M3-B/M4/M5 按实际完成勾选
- 新增 docs/PLAN-2026-10-21-backlog.md(W0–W5 波次计划,含核实记录)
This commit is contained in:
Bill committed 2026-10-21 23:02:22 +08:00
1 parent 69d24fbed6
commit c0f1cdcecb
2 files changed
+244 -17

No files matched your search

+17 -17
View File
@@ -30,17 +30,17 @@
- [x] Host key 校验:known_hosts 固定、首次确认、变更告警、30s 超时拒绝
- [x] 测试:tests/ssh-loopback.mjs(ssh2 回环)+ tests/ssh-session-e2e.mjs(真实会话路由层 e2e)
- 待解锁后的 GUI 验收:双击书签连接、指纹弹窗交互、断线提示
- 已知限制:SSH 面板暂不支持作为分屏参照(总在新标签打开);连接中 Modal 不可取消;agent 认证未在本机验证
- 已知限制:连接中 Modal 不可取消;agent 认证未在本机验证(「SSH 面板不能作分屏参照」一条已失效:`Workspace.tsx` 的 `handleSplit` 已支持 SSH dockview 内按同 session 分屏)
## M3 — SSH 产品化:Terminal/SSH 分离 + 服务器硬件监控 ✅
### A. Terminal 与 SSH 功能分离(产品形态)
- [ ] 侧栏双分区:「终端」(本地)与「SSH 服务器」各自独立区块(独立折叠、独立头部、独立计数)
- [ ] SSH 会话标识:标签页带服务器图标/主机名前缀,本地与 SSH 标签视觉区分
- [ ] 新建入口分离:图标条「+」只建本地终端;SSH 会话仅从服务器列表发起(双击连接,右键:连接/编辑/删除/复制主机)
- [ ] SSH 区增加「最近会话」(按 lastConnectedAt 排序,一键重连)
- [ ] (可选增强)工作区模式:本地/SSH 两个独立工作区布局,互不混排
- [x] 侧栏双分区:「终端」(本地)与「SSH 服务器」各自独立区块(独立折叠、独立头部、独立计数)
- [x] SSH 会话标识:标签页带服务器图标/主机名前缀,本地与 SSH 标签视觉区分
- [x] 新建入口分离:图标条「+」只建本地终端;SSH 会话仅从服务器列表发起(双击连接,右键:连接/编辑/删除/复制主机)
- [x] SSH 区增加「最近会话」(按 lastConnectedAt 排序,一键重连)
- [x] (可选增强)工作区模式:本地/SSH 两个独立工作区布局,互不混排(现为图标栏「终端工作区 / SSH 工作区」双模式 + 双 dockview)
- 验收:不开侧栏也能一眼区分标签是本地还是 SSH;图标条「+」只出本地终端
### B. 服务器硬件监控(参考 Wave Terminal 的 sysinfo 块)
@@ -52,25 +52,25 @@
数据面:ssh2 `conn.exec` → stdout JSON → 主进程解析 → `STATS:{id, stats}` 广播 → 渲染层
- [ ] `src/main/sysinfo.ts`:按会话轮询(默认 3s,可配置),会话关闭/断线自动停止;解析容错
- [ ] 契约:`shared/sysinfo.ts`(SysinfoSample + STATS 通道 + 面板开关事件)
- [ ] UI:SSH 会话右侧可折叠监控面板——CPU 多核条形、内存/磁盘用量条、网络上下行、负载/运行时间
- [ ] (增强路线)进程 Top 列表 + 结束进程
- [x] `src/main/sysinfo.ts`:按会话轮询(默认 3s,可配置),会话关闭/断线自动停止;解析容错
- [x] 契约:`shared/sysinfo.ts`(SysinfoSample + STATS 通道 + 面板开关事件)
- [x] UI:SSH 会话右侧可折叠监控面板——CPU 多核条形、内存/磁盘用量条、网络上下行、负载/运行时间
- [ ] (增强路线)进程 Top 列表 + 结束进程(未做;依赖部署脚本路线,与「零部署」取向冲突,见 PLAN-2026-10-21 §6)
- 验收:连接后 ≤3s 看到实时 CPU/内存;断开会话监控自动停止;服务器跑 `stress` 曲线明显上升
## M4 — SFTP 文件管理 ✅
- [ ] `src/main/sftp.ts`:ssh2 SFTP 封装(readdir/stat/rename/mkdir/rm/mv,大文件分块传输 + 进度事件)
- [ ] 双栏界面(本地 ↔ 远程)+ 拖拽上传/下载 + 传输面板(队列/暂停/取消)
- [ ] 右键菜单:压缩/解压(tar.gz)、编辑远程文件(Monaco,下载-编辑-回传)
- [x] `src/main/sftp.ts`:ssh2 SFTP 封装(readdir/stat/rename/mkdir/rm/mv,大文件分块传输 + 进度事件)
- [ ] 双栏界面(本地 ↔ 远程)+ 拖拽上传/下载 + 传输面板(队列/暂停/取消)——**部分完成**:传输面板与取消已有(TransferPanel/cancelTransfer);双栏、拖拽、暂停/续传未做(`TransferState` 无 paused 态),见 PLAN-2026-10-21 §6
- [ ] 右键菜单:压缩/解压(tar.gz)、编辑远程文件(Monaco,下载-编辑-回传)——未做(远程编辑建议走轻量方案,见 PLAN W5-1)
- 验收:100MB 文件传输进度流畅、可取消续传
## M5 — 命令系统与会话日志 ✅
- [ ] 命令历史(sqlite + better-sqlite3,按会话去重)
- [ ] 命令库(分组 + 参数变量 `{{param}}` + 一键运行/粘贴)
- [ ] 终端补全:历史 + 命令库 + 内置命令表(内置命令文档可从 tldr 页面生成)
- [ ] 会话日志:手动启停、纯文本落盘、断线暂停指示
- [x] 命令历史(按会话去重;实现为 `commands.json` 而非原计划的 sqlite,全仓零原生依赖)
- [x] 命令库(分组 + 一键运行/粘贴;**参数变量 `{{param}}` 未做**——`shared/commands.ts` 的 `params` 字段已定义但无消费代码,见 PLAN W2-2)
- [x] 终端补全:历史 + 命令库(**内置命令表未做**,见 PLAN §梳理)
- [x] 会话日志:手动启停、纯文本落盘(**断线暂停指示未做**——pane 重绑时录制静默停止)
- [x] ~~关键词高亮~~(✅ 已提前完成:highlightEngine 流式 ANSI 注入 + 22 条预设 + 设置页管理,见 M2.5;状态类预设不分大小写、覆盖 ✓/✗ 符号,删除/新建操作单独着色,百分比/退出码/HTTP 状态码/耗时按数值分级取色,含密钥泄露提醒与危险管道,旧安装的预设规则在加载时按「未被用户改动过」升级)
- 验收:补全 ↑↓ 选择 / Tab 接受 / Esc 关闭 / 回车直接执行,交互流畅