Files
opsxshell/ROADMAP.md
T
Logan.Li c4bf43f58f docs: 更新项目文档到 v0.3.0 最新进度
README.md: 更新功能特性,标记核心功能完成
ROADMAP.md: 添加 v0.10.0 版本,更新 v1.0.0 状态
PROJECT_EVALUATION.md: 添加 v0.10.0 评估 (95/100)
2026-04-06 01:23:41 +08:00

8.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 全面优化 ✅ 已完成
v0.10.0 v0.3.0-release 核心功能实现 ✅ 已完成
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 自动创建所有会话

v0.10.0 v0.3.0-release ✅

完成日期: 2026-04-06

✅ 已完成功能清单

SSH 终端核心功能

功能 文件 说明
密码认证 ssh-service.ts 用户名密码连接
密钥认证 ssh-service.ts RSA/ED25519 私钥认证
XTerm.js 终端 TerminalView.tsx 高性能终端仿真
多主题配色 terminal.ts Dracula/Monokai/Solarized/One Dark
IP 高亮显示 TerminalView.tsx Last login IP 绿色高亮
端口转发 PortForwardView.tsx 本地/远程/SOCKS5 动态代理

SFTP 文件管理

功能 文件 说明
双栏文件管理 SFTPView.tsx 本地/远程双栏对比
上传下载 useSFTP.ts 文件传输队列
传输进度 TransferPanel.tsx 实时进度显示
服务器选择 ConnectionSelector.tsx 快速选择已保存会话

架构改进

功能 文件 说明
模块化 IPC electron/ipc/*.ts 8 个独立 IPC 模块
连接池管理 poolStore.ts 连接复用和生命周期管理
统一日志 logger.ts 彩色高亮调试日志
错误处理 error-handler.ts 统一错误边界处理

v1.0.0 Stable - 生产可用 ✅

状态: 已完成

功能完成清单

SSH 终端

  • ✅ 密码/密钥认证
  • ✅ XTerm.js 高性能终端
  • ✅ 多主题配色方案
  • ✅ IP 地址高亮显示

SFTP 管理

  • ✅ 双栏文件管理器
  • ✅ 上传/下载文件
  • ✅ 传输队列管理
  • 🟡 拖拽上传下载 (界面就绪,待完善)
  • 📋 断点续传 (规划中)

端口转发

  • ✅ 本地端口转发
  • ✅ 远程端口转发
  • ✅ 动态 SOCKS5 代理
  • ✅ 转发规则管理

架构特性

  • ✅ IPC Handler 模块化
  • ✅ 共享类型定义
  • ✅ 连接池 Store 拆分
  • ✅ 统一日志系统

开发优先级

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 运行
  • 性能指标达标