Files
opsxshell/ROADMAP.md
T
OpsXShell Dev c5243df040 docs: UI/UX深度审计 — 视觉设计+功能交互全面评估
- PROJECT_EVALUATION.md: 新增UI/UX审计评分(48/100)
  - 视觉设计65分(配色专业但系统执行不严格)
  - 交互体验40分(alert/prompt泛滥,无Toast)
  - 功能便捷性45分(快捷键仅4个,无终端搜索)
  - 状态处理35分(多组件缺三态)
  - 响应式10分(完全缺失)
  - 12项Critical问题 + 8项Warning问题
  - 功能完成度矩阵 + 竞品对标
  - 3阶段优化路线(48→88分)

- ROADMAP.md: 基于UI/UX审计重写路线图
  - v1.1.0 基础可用(2周): Toast+终端搜索+会话恢复+SFTP修复
  - v1.2.0 体验升级(2周): 快捷键+拖拽+响应式+视觉打磨
  - v1.3.0 测试覆盖(2周): 核心模块50%覆盖率
  - v1.4.0 专业功能(2周): 分屏+i18n+自定义快捷键
  - v1.5.0 安全升级(1周): Electron升级+IPC加密
2026-04-18 13:23:04 +08:00

8.1 KiB
Raw Blame History

ROADMAP.md - OpsXShell 开发路线图

版本规划总览

v1.1.0 基础可用  ─── 2 周 ──→ UI/UX 48→65, 代码 58→68
v1.2.0 体验升级  ─── 2 周 ──→ UI/UX 65→78, 代码 68→75
v1.3.0 测试覆盖  ─── 2 周 ──→ 测试 15→50%, 代码 75→80
v1.4.0 专业功能  ─── 2 周 ──→ UI/UX 78→88, 功能完成度 90+
v1.5.0 安全升级  ─── 1 周 ──→ 安全 55→85, 代码 80→85

v1.1.0 基础可用 (2 周) — 当前阶段

目标: 解决所有 Critical UI/UX 问题,建立基础反馈系统,产品具备日常使用价值

🔴 P0 — 必须完成

# 任务 类型 预计 验收标准
1 Toast 通知系统 新增 2天 useToast() hook + ToastContainer,支持 success/error/warning/info 四种类型,自动消失+手动关闭
2 替换所有 alert/prompt/confirm 修复 2天 App.tsx 5处 alert → Toast,SFTPView.tsx prompt → 内联输入,PortForwardView.tsx confirm → ConfirmDialog
3 SFTP 上传/删除真实实现 修复 3天 上传通过 ssh2 sftp fastPut 实现,删除通过 rimraf/unlink 实现,右键菜单 action 绑定真实函数
4 终端搜索 (SearchAddon) 新增 1天 Ctrl+Shift+F 打开搜索栏,支持正则/大小写/全词匹配,高亮所有匹配
5 会话恢复 新增 3天 关闭前持久化标签状态到 SQLite,启动时恢复标签+自动重连
6 修复私钥浏览按钮 修复 0.5天 dialog.showOpenDialog() 绑定到 onClick,过滤 .pem/.key/id_*
7 清理生产调试日志 修复 1天 移除 DEBUG=true,所有 console.log 用 logger 替代或删除
8 设计系统统一颜色 修复 1天 cyan→accent-blue, sky→accent-blue, slate→dark-*,新增 accent-orange
9 StatusBar 接入实际状态 修复 0.5天 显示当前连接 host、延迟 ms、标签数
10 WelcomeView 真实最近连接 修复 1天 从 sessionStore 获取最近 5 条连接记录,空状态显示引导

里程碑推送

  • SFTP 功能可用 (上传+删除+右键菜单)
  • Toast 系统上线 (零 alert)
  • 终端搜索可用
  • 会话恢复可用

v1.2.0 体验升级 (2 周)

目标: 快捷键补全、视觉打磨、交互优化,接近 Termius 体验水平

🟡 P1 — 重要

# 任务 类型 预计 验收标准
1 Ctrl+Tab / Ctrl+1~9 标签切换 新增 1天 Ctrl+Tab 前后切换,Ctrl+1~9 跳转指定标签
2 标签拖拽排序 新增 2天 拖拽标签头重排序,拖出标签栏可弹出新窗口(可选)
3 SFTP 拖拽上传 新增 2天 从系统文件管理器拖拽文件到远程面板触发上传
4 SFTP 右键菜单完善 完善 1天 新增:权限编辑、属性查看、重命名、复制路径
5 侧边栏会话分组折叠 完善 1天 点击分组头折叠/展开,带动画
6 Sidebar 宽度可拖拽调整 新增 1天 拖拽分隔条调整宽度,记忆到 settings
7 响应式布局基础 新增 2天 窄窗口(<800px)自动折叠侧边栏,SFTP 垂直堆叠
8 Loading/Skeleton 加载态 新增 1天 FileListPanel 加载时显示骨架屏,SessionTree 同理
9 空状态设计 新增 1天 每个组件空状态有引导文案+操作按钮
10 TerminalView 组件拆分 重构 3天 645行拆为 TerminalCore + TerminalOverlay + TerminalSearch

视觉优化清单

# 文件 改进
V-1 StatusBar.tsx bg-accent-blue → bg-dark-800 border-t
V-2 SFTPView.tsx emoji 图标 → Lucide 组件
V-3 TabBar.tsx 添加活跃标签底部指示线
V-4 App.tsx Sidebar 折叠/展开过渡动画
V-5 WelcomeView.tsx 响应式 grid-cols-1 sm:grid-cols-2

v1.3.0 测试覆盖 (2 周)

目标: 核心模块测试覆盖率从 10% 提升到 50%

详细计划见 TDD_PLAN.md

# 模块 当前覆盖 目标覆盖 预计
1 stores (tab/connection/settings/session) 0% 70% 3天
2 hooks (useTerminal/useSFTP/useConnection) 0% 50% 3天
3 electron services (ssh/sftp/database/crypto) 0% 60% 4天
4 组件渲染测试 (WelcomeView/TabBar/SFTPView) 5% 40% 3天

v1.4.0 专业功能 (2 周)

目标: 快捷键自定义、终端分屏、i18n,达到专业级水平

# 任务 类型 预计 验收标准
1 快捷键自定义系统 新增 3天 设置页快捷键 Tab,可重映射所有快捷键,冲突检测
2 终端分屏 新增 5天 水平/垂直分割标签页,可拖拽调整分割比例
3 i18n 国际化 新增 5天 zh-CN + en-US,所有 UI 文字抽离到 locale 文件
4 Light 主题 新增 3天 完整 light 色板,自动跟随系统
5 Snippets 命令片段库 新增 3天 创建/管理/搜索命令片段,快捷键插入到终端
6 代理设置 新增 2天 HTTP/SOCKS5 代理配置,按会话独立设置
7 多窗口支持 新增 5天 右键标签"在新窗口打开",窗口位置记忆

v1.5.0 安全升级 (1 周)

目标: 安全评分从 55 提升到 85

# 任务 类型 预计
1 IPC 传输加密 (密码不明文) 修复 2天
2 Electron 升级 v28→v33+ 升级 2天
3 CSP 策略强化 新增 1天
4 依赖安全审计 + 更新 修复 1天

长期愿景 (v2.0+)

功能 描述
云同步 会话/设置跨设备同步
AI 助手 终端命令建议、错误诊断
团队协作 共享会话、权限管理
插件系统 第三方扩展支持
脚本录制 操作录制+回放

技术栈

类别 技术 版本
框架 Electron 28+ (升级至 33+)
UI React 18
语言 TypeScript 5
构建 Vite 5
状态管理 Zustand 4
终端 XTerm.js 5
SSH ssh2 1.15
样式 Tailwind CSS 3
图标 Lucide React —
数据库 better-sqlite3 11
加密 AES-256-GCM (Node crypto) —

架构设计

┌──────────────────────────────────────────────┐
│                  Electron Main               │
│  ┌─────────┐ ┌──────────┐ ┌───────────────┐ │
│  │ Window  │ │   IPC    │ │   Services    │ │
│  │ Manager │ │ Handlers │ │ SSH/SFTP/DB   │ │
│  └─────────┘ └──────────┘ └───────────────┘ │
├──────────────────────────────────────────────┤
│                 React Renderer               │
│  ┌─────────┐ ┌──────────┐ ┌───────────────┐ │
│  │  Views  │ │  Stores  │ │    Hooks      │ │
│  │Term/SFTP│ │Zustand x5│ │useTerm/useSFTP│ │
│  └─────────┘ └──────────┘ └───────────────┘ │
│  ┌─────────────────────────────────────────┐ │
│  │        Components (Button/Modal/...)    │ │
│  └─────────────────────────────────────────┘ │
├──────────────────────────────────────────────┤
│              Shared (types/constants)        │
└──────────────────────────────────────────────┘