Files
opsxshell/ROADMAP.md
T
Logan.Li 484d850abd feat: v0.3.0 版本 - SSH终端、SFTP、端口转发功能实现
核心功能:
- SSH终端: 密码/密钥认证、XTerm.js终端、多主题配色、IP高亮
- SFTP管理: 双栏文件管理、上传下载、传输队列
- 端口转发: 本地/远程转发、SOCKS5动态代理、规则管理

架构改进:
- 拆分大型组件 (SFTPView/TabBar/Sidebar)
- 添加统一日志和错误处理
- 修复React严格模式下的终端黑屏问题

UI更新:
- 新增端口转发视图
- 更新UI预览文档
- 左侧栏右键菜单支持SFTP快捷打开
2026-04-06 01:20:47 +08:00

7.8 KiB

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 复用连接 ✅ 已完成

开发优先级

v0.6.0 完成清单 ✅

v1.0.0 开发顺序:
├── 1. 测试框架建立 (P0)
├── 2. 文件列表右键菜单 (P1)
├── 3. WebGL 渲染优化 (P1)
└── 4. 会话导入完整实现 (P1)

里程碑检查点

v1.0.0 Stable 完成条件

  • 测试框架建立 (vitest + 38 测试用例)
  • 文件列表右键菜单 (新建/复制/属性)
  • WebGL 终端渲染优化
  • 会话导入完整实现
  • 无 critical/major 级别 bug
  • 打包后可在 macOS/Windows 运行
  • 性能指标达标