ROADMAP.md - 开发路线图
本文档规划 OpsXShell 的版本迭代和开发方向。
版本规划概览
| 版本 |
代号 |
目标 |
状态 |
| v0.1.0 |
Alpha |
功能骨架 + 核心 SSH |
✅ 已完成 |
| v0.2.0 |
Beta |
功能补全 + 稳定性 |
✅ 已完成 |
| v0.3.0 |
RC |
性能优化 + 加密 |
✅ 已完成 |
| v0.4.0 |
Pre-Stable |
UI 完善 |
✅ 已完成 |
| v0.5.0 |
Pre-Stable |
SFTP 传输优化 |
✅ 已完成 |
| v0.6.0 |
Pre-Stable |
终端 rz/sz 支持 |
✅ 已完成 |
| v0.7.0 |
Professional |
专业连接管理 |
✅ 已完成 |
| v0.8.0 |
Modular |
架构模块化重构 |
✅ 已完成 |
| v0.9.0 |
Optimization |
P0/P1 全面优化 |
✅ 已完成 |
| v1.0.0 |
Stable |
生产可用 |
⏳ 开发中 |
v0.5.0 Pre-Stable ✅
完成日期: 2026-04-05
✅ 已完成功能清单
SFTP 传输队列优化
| 功能 |
文件 |
说明 |
| 传输队列显示 |
SFTPView.tsx |
显示进行中的上传/下载任务 |
| 传输历史记录 |
SFTPView.tsx |
显示最近完成的传输任务 |
| 可收起面板 |
SFTPView.tsx |
点击展开/收起传输面板 |
| 多文件上传队列 |
SFTPView.tsx |
逐个上传并显示各任务进度 |
| Downloads 目录 |
SFTPView.tsx |
跨平台默认下载路径 |
| 移除删除按钮 |
SFTPView.tsx |
简化界面 |
v0.6.0 Pre-Stable ✅
完成日期: 2026-04-05
✅ 已完成功能清单
终端 rz/sz 支持
| 功能 |
文件 |
说明 |
| rz 命令拦截 |
TerminalView.tsx |
检测 rz 并打开文件选择器 |
| sz 文件接收 |
TerminalView.tsx |
捕获 Zmodem 数据并保存 |
| 文件读写 API |
preload.ts, main.ts |
支持 rz 上传和 sz 下载 |
v0.7.0 Professional ✅
完成日期: 2026-04-05
✅ 已完成功能清单
专业连接管理架构
| 功能 |
文件 |
说明 |
| 连接状态机 |
connectionPool.ts |
disconnected/connecting/connected/background/suspended |
| 连接池管理 |
connectionPool.ts |
最大 10 并发,LRU 淘汰策略 |
| 后台连接保持 |
connectionPool.ts |
最大 5 个后台连接,空闲 5 分钟挂起 |
| 自动保活机制 |
connectionPool.ts |
每分钟发送心跳包 |
| 连接复用 |
connectionPool.ts |
相同配置标签共享 SSH 连接 |
| 终端快照 |
terminalSnapshotStore.ts |
切换标签保存/恢复终端内容 |
| 快照恢复 |
TerminalView.tsx |
快速恢复显示,避免黑屏 |
| 挂起恢复 UI |
TerminalView.tsx |
手动恢复或重新连接选项 |
| 连接状态指示 |
TerminalView.tsx |
实时显示连接状态(绿/蓝/黄/红) |
| 专业设置面板 |
SettingsView.tsx |
可配置连接池参数 |
多标签连接隔离
| 功能 |
文件 |
说明 |
| 独立连接实例 |
tabStore.ts |
每个标签独立的 connectionInstance |
| 标签切换优化 |
TabContent.tsx |
opacity 过渡,保持组件实例 |
| 连接引用计数 |
connectionPool.ts |
正确管理连接生命周期 |
| 关闭自动断开 |
TabBar.tsx |
标签关闭时释放对应连接 |
v0.8.0 Modular ✅
完成日期: 2026-04-05
✅ 已完成架构重构清单
IPC Handler 分层
| 模块 |
文件 |
说明 |
| SSH IPC |
electron/ipc/ssh.ipc.ts |
连接/断开/exec/Shell/端口转发 |
| SFTP IPC |
electron/ipc/sftp.ipc.ts |
SFTP 操作/传输进度 |
| 会话 IPC |
electron/ipc/session.ipc.ts |
CRUD 操作 |
| 设置 IPC |
electron/ipc/settings.ipc.ts |
读写设置 |
| 对话框 IPC |
electron/ipc/dialog.ipc.ts |
文件对话框 |
| 文件 IPC |
electron/ipc/file.ipc.ts |
本地文件操作 |
| Zmodem IPC |
electron/ipc/zmodem.ipc.ts |
rz/sz 传输 |
| 应用 IPC |
electron/ipc/app.ipc.ts |
版本/路径信息 |
共享类型统一
| 类型 |
文件 |
说明 |
| Session 类型 |
shared/types/session.types.ts |
会话配置、认证类型 |
| Connection 类型 |
shared/types/connection.types.ts |
连接池、连接状态 |
| SFTP 类型 |
shared/types/sftp.types.ts |
文件项、传输任务 |
| IPC 类型 |
shared/types/ipc.types.ts |
IPC 通道常量 |
连接池 Store 拆分
| Store |
文件 |
说明 |
| Pool Store |
src/stores/connection/poolStore.ts |
连接池核心:创建/获取/释放 |
| Lifecycle Store |
src/stores/connection/lifecycleStore.ts |
状态机、超时、事件 |
| Store Hooks |
src/stores/connection/storeHooks.ts |
组合接口 |
SFTP 组件拆分
| 组件 |
文件 |
说明 |
| Breadcrumb |
src/components/sftp/Breadcrumb.tsx |
路径导航 |
| SortHeader |
src/components/sftp/SortHeader.tsx |
列排序 |
| FileRow |
src/components/sftp/FileRow.tsx |
文件行渲染 |
| ContextMenu |
src/components/sftp/ContextMenu.tsx |
右键菜单 |
| TransferItem |
src/components/sftp/TransferItem.tsx |
传输任务项 |
| ConnectionSelector |
src/components/sftp/ConnectionSelector.tsx |
服务器选择 |
v0.9.0 Optimization ✅
完成日期: 2026-04-05
✅ 已完成功能清单
测试框架建立
| 功能 |
文件 |
说明 |
| Vitest 配置 |
vitest.config.ts |
测试环境配置 |
| 测试设置 |
test/setup.ts |
Electron API mock |
| TabStore 测试 |
test/stores/tabStore.test.ts |
16 个测试用例 |
| ConnectionPool 测试 |
test/stores/connectionPool.test.ts |
8 个测试用例 |
| SFTP Utils 测试 |
test/components/sftp/utils.test.ts |
14 个测试用例 |
SFTP 右键菜单完善
| 功能 |
文件 |
说明 |
| 新建文件夹 |
SFTPView.tsx |
本地新建文件夹 |
| 复制路径 |
SFTPView.tsx |
复制文件完整路径 |
| 查看属性 |
SFTPView.tsx |
显示文件详情 |
| sftpMkdir IPC |
sftp.ipc.ts |
远程创建目录支持 |
WebGL 渲染优化
| 功能 |
文件 |
说明 |
| WebGL Addon |
TerminalView.tsx |
GPU 加速渲染 |
| 自动降级 |
TerminalView.tsx |
WebGL 不可用时降级 |
会话导入完善
| 功能 |
文件 |
说明 |
| JSON 格式导入 |
App.tsx |
支持数组和对象格式 |
| SSH Config 导入 |
App.tsx |
支持 Host/HostName/User |
| 批量创建 |
App.tsx |
自动创建所有会话 |
v1.0.0 Stable - 生产可用
开发计划
P0 核心功能
| 功能 |
文件 |
说明 |
状态 |
| 测试框架建立 |
vitest.config.ts |
单元/集成测试 |
✅ 已完成 |
P1 重要功能
| 功能 |
文件 |
说明 |
状态 |
| 文件列表右键菜单 |
SFTPView.tsx |
新建文件夹/复制路径/属性 |
✅ 已完成 |
| WebGL 渲染优化 |
TerminalView.tsx |
GPU 加速渲染 |
✅ 已完成 |
| 会话导入完整实现 |
App.tsx |
JSON + SSH Config 批量导入 |
✅ 已完成 |
P2 优化功能
| 功能 |
文件 |
说明 |
状态 |
| sandbox 模式 |
electron/main.ts |
提升安全性 |
🟡 待优化 |
| 全局快捷键 |
TabBar.tsx |
快捷键冲突修复 |
🟡 待优化 |
| 连接池管理 |
connectionPool.ts |
复用连接 |
✅ 已完成 |
开发优先级
里程碑检查点
v1.0.0 Stable 完成条件