feat: release OpsXShell 2.1.0 native Tauri edition

This commit is contained in:
Logan.Li committed 2026-07-30 23:32:51 +08:00
1 parent e9a0d21758
commit a3dba0c6ed
311 files changed
+31748 -14897

No files matched your search

+26 -165
View File
@@ -1,172 +1,33 @@
# ROADMAP.md - OpsXShell 开发路线图
# OpsXShell Roadmap
## 版本规划总览
## 已完成基线
```
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
```
- Rust `TunnelManager`:本地、远程和动态 SOCKS5 转发拥有独立 ID、真实启停、连接清理和运行状态
- 转发规则按保存会话持久化,不持久化运行中状态
- SOCKS5 一键启动、代理地址复制、活动连接数和上下行字节统计
- 转发规则的创建、编辑、复制、删除与运行实例完全分离
- `TerminalPipeline` 统一输入错误、UTF-8 分片解码、输出背压和流量统计
- SFTP 本地/远程路径使用不同类型;read/write 与 upload/download 使用不同接口
- `ssh.rs` 已拆出认证、known_hosts、代理/ProxyJump、路径和 SFTP 模块
- `tunnel.rs` 已拆出运行模型、SOCKS5 协议与 Relay 模块
- 注册 `ssh://` 系统链接,支持冷启动队列和运行中单实例唤起
---
## 当前重点
## v1.1.0 基础可用 (2 周) — ✅ 已完成
- SSH/SFTP/PTY/串口稳定性和断网恢复
- 隧道专用 SSH 连接复用、保活、断线重建和可选自动启动
- 继续抽离 SSH connection/shell 生命周期,并为隧道增加专用连接 Multiplexer
- 完成 Windows 安装包的 `ssh://` 注册与运行中单实例实机验收
- 从 URL、IP 和远程路径识别中抽取安全点击策略
- Agent Forwarding、OpenSSH 证书和 FIDO2
- SFTP 内容校验和、显式冲突选择及任务恢复
- Windows x86_64 实机安装与功能验收
> **目标**: 解决所有 Critical UI/UX 问题,建立基础反馈系统,产品具备日常使用价值
## 发布闭环
### ✅ 全部完成 (提交: 53274e2 + d344900)
- macOS Developer ID 签名与公证
- Windows Authenticode 签名
- 带签名清单和回滚策略的自动更新
- 可由用户主动导出的脱敏崩溃诊断包
| # | 任务 | 状态 | 提交 |
|---|------|------|------|
| 1 | Toast 通知系统 | ✅ | d344900 |
| 2 | 替换所有 alert/prompt/confirm | ✅ | d344900 |
| 3 | SFTP 上传/删除真实实现 | ✅ | d344900 |
| 4 | 终端搜索 (SearchAddon) | ✅ | d344900 |
| 5 | 会话恢复 (标签持久化) | ✅ | d344900 |
| 6 | 修复私钥浏览按钮 | ✅ | 53274e2 |
| 7 | 清理生产调试日志 | ✅ | 53274e2 |
| 8 | 设计系统统一颜色 | ✅ | 53274e2 |
| 9 | StatusBar 接入实际状态 | ✅ | 53274e2 |
| 10 | WelcomeView 真实最近连接 | ✅ | 53274e2 |
| 11 | better-sqlite3 → sql.js 迁移 | ✅ | 53274e2 |
### 里程碑
- [x] SFTP 功能可用 (上传+删除+右键菜单)
- [x] Toast 系统上线 (零 alert)
- [x] 终端搜索可用
- [x] 会话恢复可用
---
## v1.2.0 体验升级 (2 周) — ✅ 已完成
> **目标**: 快捷键补全、视觉打磨、交互优化,接近 Termius 体验水平
### ✅ 全部完成 (提交: caba5f4)
### 🟡 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 周) — ✅ 已完成
> **目标**: 主题系统、命令面板、Snippets、UI 打磨,达到专业级体验
### ✅ 全部完成 (提交: 1f2de03 + 924a02b)
|| # | 任务 | 状态 | 提交 |
|---|------|------|------|
| 1 | 主题系统 Dark/Light/System | ✅ | 1f2de03 |
| 2 | Vite 代码分割 | ✅ | 1f2de03 |
| 3 | 设置面板视觉重构 | ✅ | 1f2de03 |
| 4 | 命令片段库 Snippets | ✅ | 1f2de03 |
| 5 | 全局命令面板 | ✅ | 1f2de03 |
| 6 | 连接状态面板 | ✅ | 1f2de03 |
| 7 | UI 打磨 — 全局细节优化 | ✅ | 924a02b |
---
## v1.4.0 专业功能 (2 周) — 🚧 进行中
> **目标**: 快捷键自定义、终端分屏、i18n、代理、多窗口,达到专业级水平
|| # | 任务 | 类型 | 预计 | 验收标准 | 状态 |
|---|------|------|------|----------|------|
| 1 | 快捷键自定义系统 | 新增 | 3天 | 设置页快捷键 Tab,可重映射所有快捷键,冲突检测 | ✅ |
| 2 | 终端分屏 | 新增 | 5天 | 水平/垂直分割标签页,可拖拽调整分割比例 | 🚧 |
| 3 | i18n 国际化 | 新增 | 5天 | zh-CN + en-US,所有 UI 文字抽离到 locale 文件 | 🚧 |
|| 4 | 代理设置 | 新增 | 2天 | HTTP/SOCKS5 代理配置,按会话独立设置 | ✅ |
| 5 | 多窗口支持 | 新增 | 5天 | 右键标签"在新窗口打开",窗口位置记忆 | 🚧 |
> **注**: Light 主题、Snippets 命令片段库已在 v1.3.0 提前完成
---
## 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 | — |
| 数据库 | sql.js (SQLite WASM) | 1.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) │
└──────────────────────────────────────────────┘
```
审计、录像、审批和命令历史不在产品范围内。