feat: harden local shell, SFTP, and desktop session reliability
Finder-launched terminals now inherit a login PATH so tools like ollama resolve, destructive SFTP/editor actions require confirmation, and terminal search plus window dragging work again. SSH forwards and RDP sessions keep listeners and survive reconnect without FastPath crashes. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
188f3556ed
commit
08696896f9
223 files changed
+13493
-3423
No files matched your search
@@ -1,13 +1,13 @@
|
||||
# OpsXShell
|
||||
|
||||
轻量原生的跨平台运维终端。产品目标是让常用远程操作更直接,不做审计平台,也不依赖插件才能完成基础工作。
|
||||
简单、便捷、人性化的原生运维终端。主打短路径:连上就能用终端、传文件、开桌面和转发——好用实用,不做审计/审批/堡垒机,也不靠插件才能干基础活。
|
||||
|
||||
## 已支持
|
||||
|
||||
- SSH 终端:密码、私钥、SSH Agent 自动尝试、主机指纹校验
|
||||
- 会话管理:分组、标签、快速连接、多标签、终端分屏;界面中英双语(zh-CN / en)
|
||||
- 会话管理:分组、标签、快速连接、多标签、终端分屏;界面 7 语种(zh-CN / zh-TW / en / ja / ko / vi / ru)
|
||||
- 批量命令:选中多个会话执行同一命令,结果仅保留在当前窗口(不含 RDP / VNC)
|
||||
- SFTP:双栏文件管理、断点续传、完整后原子替换、重命名、权限、远程文本编辑
|
||||
- SFTP:双栏、中间传输箭头、拖拽、断点续传、完整后原子替换、重命名、权限;远程文本编辑(约 2MB 上限,超限/二进制友好提示)
|
||||
- 端口转发:本地、远程、动态 SOCKS5;状态栏「转发」打开抽屉启停;规则可编辑和复制,与运行实例分离;动态默认 `127.0.0.1:1080`,经当前 SSH 服务器出口 IP 访问外网
|
||||
- 连接代理:HTTP CONNECT、SOCKS5,可选用户名密码
|
||||
- OpenSSH 配置:导入 `~/.ssh/config` 常用字段;界面支持单跳选择,Rust 后端支持最多 8 跳
|
||||
@@ -19,9 +19,9 @@
|
||||
|
||||
## 产品边界
|
||||
|
||||
OpsXShell 聚焦 SSH、SFTP、代理、转发、远程桌面、串口和多终端工作区。审计、录像、审批等堡垒机能力不在产品范围内。
|
||||
OpsXShell 聚焦「日常远程干活」:SSH、SFTP、代理、转发、远程桌面、串口和多终端工作区。审计、录像、审批等堡垒机能力不在产品范围内——宁可少而顺,也不做成重型一站式平台。
|
||||
|
||||
当前仍需补齐的专业能力:
|
||||
仍在打磨、不影响「先用起来」的方向:
|
||||
|
||||
- Agent Forwarding、OpenSSH 证书与 FIDO2
|
||||
- 断网重连、休眠恢复和大量标签切换的持续压测
|
||||
@@ -42,7 +42,7 @@ OpsXShell 聚焦 SSH、SFTP、代理、转发、远程桌面、串口和多终
|
||||
| 前端 | React 18 + TypeScript 5 + Vite 5 |
|
||||
| 状态管理 | Zustand 4.4+ |
|
||||
| 终端 | XTerm.js 5.5+ |
|
||||
| 国际化 | i18next(zh-CN / en) |
|
||||
| 国际化 | i18next(zh-CN / zh-TW / en / ja / ko / vi / ru) |
|
||||
| 测试 | Vitest + Rust test |
|
||||
|
||||
会话和设置保存在系统应用数据目录的 `opsxshell-data.json`。主密钥固定保存在 `~/.opsxshell/master.key`,Unix 权限为目录 `0700`、文件 `0600`。旧版 typo 路径 `~/.opsxshsell/` 会在启动时自动迁移并保留 `.opsxshsell.bak` 备份。
|
||||
@@ -61,32 +61,27 @@ npm run dev
|
||||
```bash
|
||||
npm run acceptance:quick
|
||||
npm run acceptance:full
|
||||
./build.sh v2.1.1 mac-arm64
|
||||
build.bat v2.1.1 win-x64
|
||||
./release.py v2.1.1 --dry-run
|
||||
./scripts/build.sh v2.1.1 mac-arm64
|
||||
scripts\build.bat v2.1.1 win-x64
|
||||
./scripts/release.py v2.1.1 --dry-run
|
||||
```
|
||||
|
||||
`build.sh`(macOS/Git Bash)和 `build.bat`(Windows CMD)会校验版本、运行门禁、构建并验证安装包,最终产物统一复制到 `release/v<版本>/<平台>/` 并生成 `SHA256SUMS.txt`。显式传入新版本会同步所有版本文件,但不会自动创建或推送 Git tag。`release.py` 在 tag 推送后创建 Gitee Release、上传安装包和校验文件,并核对远程附件;先使用 `--dry-run` 检查待发布文件。平台打包必须在对应系统执行:macOS 在 macOS 构建,Windows x86_64 在 Windows 构建。
|
||||
`scripts/build.sh`(macOS/Git Bash)和 `scripts/build.bat`(Windows CMD)会校验版本、运行门禁、构建并验证安装包,最终产物统一复制到 `release/v<版本>/<平台>/` 并生成 `SHA256SUMS.txt`。显式传入新版本会同步所有版本文件,但不会自动创建或推送 Git tag。`scripts/release.py` 在 tag 推送后创建 Gitee Release、上传安装包和校验文件,并核对远程附件;先使用 `--dry-run` 检查待发布文件。平台打包必须在对应系统执行:macOS 在 macOS 构建,Windows x86_64 在 Windows 构建。
|
||||
|
||||
## 目录
|
||||
|
||||
```text
|
||||
src/ React 界面与状态管理
|
||||
src/i18n/ 界面文案(zh-CN / en)
|
||||
src/platform/ Tauri 命令和事件适配层
|
||||
src/platform/sftp.ts 本地/远程路径强类型传输边界
|
||||
src/platform/rdp.ts RDP 会话适配
|
||||
src/platform/vnc.ts VNC 会话适配
|
||||
src/utils/terminalPipeline.ts 终端输入、输出和背压管线
|
||||
shared/types/ 前后端共享 TypeScript 契约
|
||||
src-tauri/src/commands/ 精简的 Tauri 命令边界
|
||||
src-tauri/src/domain/ 原生领域模型
|
||||
src-tauri/src/services/ SSH、SFTP、隧道、PTY、串口、桌面、AI、存储服务
|
||||
src-tauri/src/services/ssh/ 认证、known_hosts、代理/跳板和 SFTP 子模块
|
||||
src-tauri/src/services/tunnel/ 转发运行模型、SOCKS5 协议和双向 Relay
|
||||
src-tauri/src/services/desktop/ RDP(IronRDP)与 VNC(vnc-rs)
|
||||
test/ 前端测试与基础验收
|
||||
scripts/ 构建和验收脚本
|
||||
src/ React 界面与状态管理
|
||||
src/i18n/ 界面文案(多语言)
|
||||
src/platform/ Tauri 命令和事件适配层
|
||||
shared/types/ 前后端共享 TypeScript 契约
|
||||
src-tauri/ Rust / Tauri 原生后端
|
||||
test/ 前端单元、组件与巡检测试
|
||||
test/patrol/ SSH / SFTP / RDP / VNC 基础巡检
|
||||
scripts/ 启动、验收、构建与发布脚本
|
||||
docs/ 使用 / 架构 / 验收 / 发布文档
|
||||
docs/assets/ 品牌与设计资源
|
||||
license-server/ 授权与结账服务
|
||||
```
|
||||
|
||||
## 快捷键
|
||||
@@ -105,9 +100,11 @@ scripts/ 构建和验收脚本
|
||||
- [使用指南](docs/user-guide.md)
|
||||
- [架构说明](docs/architecture.md)
|
||||
- [SSH Agent CLI 设计](docs/ai-agent.md)
|
||||
- [产品体验与基础能力评估](docs/ux-foundation-audit.md)
|
||||
- [测试与验收](docs/testing-acceptance.md)
|
||||
- [发布指南](docs/release.md)
|
||||
- [路线图](ROADMAP.md)
|
||||
- [当前任务](TASKS.md)
|
||||
- [测试计划](TDD_PLAN.md)
|
||||
|
||||
## 许可证
|
||||
|
||||
|
||||
Reference in new issue
Block a user