Files
opsxshell/ROADMAP.md
T

8.7 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 生产可用 ✅ 已完成
v1.1.0 Cleanup 代码质量清理 🔄 进行中
v1.2.0 Refactor 组件拆分重构 📋 规划中
v1.3.0 Testing 测试覆盖达标 📋 规划中
v1.4.0 Upgrade 依赖升级+安全加固 📋 规划中
v1.5.0 Polish 功能补全+性能优化 📋 规划中
v2.0.0 Professional 专业版发布 📋 远期规划

v1.1.0 代码质量清理 🔄

目标: 清除生产代码中的调试残留,补全 SFTP 核心功能 预计: 1 周 评分目标: 代码质量 45→70

任务清单

# 任务 优先级 文件 状态
1 移除所有 console.log 和彩色调试函数 P0 TerminalView.tsx, useSFTP.ts, ssh-service.ts ⬜
2 移除 DEBUG = true 硬编码 P0 TerminalView.tsx:16 ⬜
3 移除 Mock 数据残留 P0 useSFTP.ts:154-161 ⬜
4 补全 SFTP 上传 IPC 实现 P0 useSFTP.ts:399, sftp.ipc.ts ⬜
5 补全 disconnect() 资源释放 P1 useSFTP.ts:359-373 ⬜
6 Math.random → uuid 生成 ID P1 TerminalView.tsx:383,463 ⬜
7 IPC 通道名引用 IPC_CHANNELS 常量 P2 preload.ts ⬜
8 移除未使用依赖 react-router-dom P2 package.json ⬜
9 替换重复的彩色日志函数为统一 logger P2 TerminalView.tsx, useSFTP.ts ⬜
10 修复 if (false) 等无用代码 P2 TerminalView.tsx:50 ⬜

验收标准

# 零调试残留
grep -r "console.log" src/ electron/ | wc -l  # → 0
grep -r "DEBUG = true" src/ | wc -l            # → 0
grep -r "logHeader\|logInfo\|logSuccess\|logError\|logWarning" src/ electron/ | wc -l  # → 0

# SFTP 上传功能可用
# 手动测试:连接 → SFTP → 上传文件 → 验证远端文件存在

v1.2.0 组件拆分重构 📋

目标: 终端组件拆分为可维护的 Hook 体系 预计: 1.5 周 评分目标: 架构 72→85

拆分计划

TerminalView.tsx (645行) → 拆分

src/components/terminal/TerminalView.tsx        (~150行) 纯渲染层
src/hooks/useTerminal.ts                        (~200行) 终端初始化 + 数据流
src/hooks/useTerminalConnection.ts              (~150行) SSH 连接管理
src/hooks/useTerminalSnapshot.ts                (~100行) 快照保存/恢复
src/hooks/useZmodem.ts                          (~100行) rz/sz 文件传输

useSFTP.ts (510行) → 拆分

src/hooks/useSFTPNavigation.ts                  (~200行) 本地/远程目录导航
src/hooks/useSFTPTransfer.ts                    (~200行) 上传/下载/传输队列
src/hooks/useSFTPConnection.ts                  (~100行) SFTP 连接管理

App.tsx (258行) → 业务逻辑外提

src/components/App.tsx                          (~150行) 纯 UI 编排
src/services/sessionImport.ts                   (~80行)  导入/导出逻辑

Store 解耦

当前: lifecycleStore → 直接调用 poolStore.getState()
目标: 引入 ConnectionFacade 统一接口,Store 通过事件通信

验收标准

  • 单文件不超过 300 行
  • Hook 可独立导入、独立测试
  • 现有功能无回归

v1.3.0 测试覆盖达标 📋

目标: 核心模块测试覆盖率 ≥60%,总覆盖率 ≥50% 预计: 2 周 评分目标: 测试 15→50

测试批次

批次 目标模块 用例目标 优先级
1 crypto.ts (加密/解密正确性) 15+ P0
2 ssh-service.ts (mock ssh2) 20+ P0
3 database-service.ts (CRUD) 15+ P1
4 error-handler.ts (错误推断) 10+ P1
5 poolStore.ts + lifecycleStore.ts 20+ P1
6 IPC handlers (8个模块) 25+ P1
7 TerminalView 组件测试 10+ P2
8 useSFTP hooks 测试 15+ P2
总计 130+

验收标准

npm test -- --coverage
# Statements  ≥ 50%
# Branches    ≥ 40%
# Functions   ≥ 50%
# Lines       ≥ 50%

v1.4.0 依赖升级 + 安全加固 📋

目标: 依赖更新到最新稳定版,安全漏洞清零 预计: 1 周 评分目标: 安全 55→75, 依赖 50→80

依赖升级

依赖 当前 目标 风险
electron v28 v33+ 高 - Breaking changes
better-sqlite3 v9 v11 中 - API 变化
zustand v4 v5 低 - 订阅 API 变化
lucide-react 0.294 0.4xx 低 - 图标名可能有变化
eslint v8 v9 中 - flat config 迁移

安全加固

任务 说明
启用 sandbox 模式 preload 适配
CSP 移除 unsafe-inline Tailwind nonce 配置
IPC 参数验证 zod schema
密码 IPC 传输审查 确保加密后传输
审查 socksv5 安全性 评估是否替换

v1.5.0 功能补全 + 性能优化 📋

目标: 补全缺失功能,性能指标全面达标 预计: 2 周 评分目标: 功能 82→95, 综合 80+

功能补全

功能 优先级 说明
SFTP 拖拽上传/下载 P1 界面已就绪,补全 drag/drop 事件
SFTP 断点续传 P2 大文件传输可靠性
会话分组树形显示 P2 侧边栏分组 + 文件夹
终端分屏 P3 水平/垂直分屏
命令片段(Snippets) P3 常用命令快速执行
同步功能 P3 多设备会话同步

性能优化

指标 当前 目标 方案
冷启动 ~3s <2s 延迟加载非核心模块
包体积 ~120MB <100MB asar + tree-shaking
内存(10标签) ~200MB <150MB 连接池优化 + 终端回收
SSH 连接 ~1s <500ms 连接预热

远期规划 (v2.0.0)

专业版特性

  • 插件系统 — 支持第三方扩展
  • 主题编辑器 — 自定义配色方案
  • 脚本录制/回放 — 操作自动化
  • 协作共享 — 团队会话管理
  • 云同步 — 加密会话配置同步
  • API 网关 — 命令行/CI 集成
  • 容器管理 — Docker/Podman 集成

已完成版本

展开查看历史版本

v1.0.0 Stable - 生产可用 ✅

状态: 已完成

功能完成清单

SSH 终端
  • ✅ 密码/密钥认证
  • ✅ XTerm.js 高性能终端
  • ✅ 多主题配色方案
  • ✅ IP 地址高亮显示
SFTP 管理
  • ✅ 双栏文件管理器
  • ✅ 上传/下载文件
  • ✅ 传输队列管理
  • 🟡 拖拽上传下载 (界面就绪,待完善)
  • 📋 断点续传 (规划中)
端口转发
  • ✅ 本地端口转发
  • ✅ 远程端口转发
  • ✅ 动态 SOCKS5 代理
  • ✅ 转发规则管理
架构特性
  • ✅ IPC Handler 模块化
  • ✅ 共享类型定义
  • ✅ 连接池 Store 拆分
  • ✅ 统一日志系统

v0.10.0 v0.3.0-release ✅

完成日期: 2026-04-06

  • ✅ SSH 终端核心功能(密码/密钥认证、XTerm.js、多主题、IP高亮、端口转发)
  • ✅ SFTP 文件管理(双栏、上传下载、传输队列、服务器选择)
  • ✅ 架构改进(模块化 IPC、连接池管理、统一日志、错误处理)

v0.9.0 Optimization ✅

完成日期: 2026-04-05

  • ✅ 测试框架建立(Vitest + 38 测试用例)
  • ✅ SFTP 右键菜单(新建文件夹/复制路径/属性)
  • ✅ WebGL 终端渲染优化
  • ✅ 会话导入完整实现

v0.8.0 Modular ✅

完成日期: 2026-04-05

  • ✅ IPC Handler 分层(8 个独立模块)
  • ✅ 共享类型统一
  • ✅ 连接池 Store 拆分
  • ✅ SFTP 组件拆分

v0.7.0 Professional ✅

完成日期: 2026-04-05

  • ✅ 连接状态机(6 个状态)
  • ✅ 连接池管理(LRU淘汰、保活、超时)
  • ✅ 终端快照机制
  • ✅ 多标签连接隔离

v0.6.0 ~ v0.1.0 ✅

  • ✅ rz/sz 文件传输
  • ✅ SFTP 传输队列优化
  • ✅ AES-256-GCM 加密存储
  • ✅ 端口转发
  • ✅ 功能骨架 + 核心 SSH