feat(site): 并入 Gin 官网与文档服务,对齐桌面产品形态
CI / Lint & TypeCheck (push) Canceled after 0s
CI / Test (push) Canceled after 0s
CI / Tauri Foundation Acceptance (push) Canceled after 0s
CI / Build (macos-latest) (push) Canceled after 0s
CI / Build (ubuntu-latest) (push) Canceled after 0s
CI / Build (windows-latest) (push) Canceled after 0s

- apps/server:Gin embed 官网 + /docs + /health + /download(无操作 API)
- run.sh 重写 web/gui 场景;.gitignore 排除 server 二进制与挂载的安装包
- README/AGENTS/CLAUDE 同步「浏览器只看官网、操作走桌面」的产品形态说明
- 终端视口背景变量与全宽终端边缘 hairline 修正(serial/terminal/i18n 微调)
This commit is contained in:
Logan.Li committed 2026-10-10 13:35:01 +08:00
1 parent b18214e96a
commit 5eb11826db
36 files changed
+3676 -144

No files matched your search

+33 -14
View File
@@ -1,23 +1,42 @@
# OpsXShell 项目说明
请使用中文沟通。项目当前架构为 Tauri 2 + Rust + React + TypeScript,开发规则和命令以 [AGENTS.md](./AGENTS.md) 为准。
请使用中文沟通。完整规则以 [AGENTS.md](./AGENTS.md) 为准;本文件只做短入口,避免双份漂移。
核心产品范围:SSH、SFTP、HTTP/SOCKS5 代理、端口转发(本地 / 远程 / 动态 SOCKS5)、RDP / VNC 远程桌面、串口、本地终端、多标签、分屏、批量命令,以及可选的终端 AI Agent。界面文案走 `src/i18n`(多语言;key 对齐用 `test/i18n/localeKeys.test.ts`)。
## 是什么
## 目录要点
Tauri 2 + Rust + React 运维**桌面**终端:SSH、SFTP、代理/端口转发、RDP/VNC、串口、本地终端、多标签分屏、批量命令、可选终端 AI。
- `src/`:React UI;`src-tauri/`:Rust / Tauri 原生后端
- `shared/`:前后端共享 TypeScript 契约
- `test/`:Vitest;基础巡检在 `test/patrol/`(优先 `npm run test:patrol`)
- `scripts/`:启动、验收、构建与发布(`./run.sh` → `scripts/run.sh`;打包用 `./scripts/build.sh`;macOS 公证用 `./scripts/macos-notarize.sh`)
- `docs/`:使用 / 架构 / 验收 / 发布
- 持续开发任务:根目录 `ROADMAP.md` / `TASKS.md` / `TDD_PLAN.md`
**产品形态**(对齐 opsxdb / opsxapi):
数据流:UI → Zustand → `src/platform/*` → Tauri command → Rust 服务。组件不直接 `invoke`,也不直接碰 SSH / 文件系统 / 加密。
```text
浏览器 → Gin 官网 + docs(./run.sh web → :8789)
操作 → 仅桌面(./run.sh gui)
```
## 与 AGENTS.md 的关系
Gin **没有**操作 API;不要把 Vite `:1420` 当浏览器工作台。
- **AGENTS.md**:完整开发规则(安全、转发、SFTP、RDP、AI、扩展步骤、命令)。
- **CLAUDE.md**:本文件,给 Claude/Cursor 的短入口;细节一律以 AGENTS.md 为准,避免双份漂移。
## 和谁分工
不要恢复旧桌面构建链、终端命令历史或堡垒机审计能力。RDP / VNC 是原生 IronRDP / vnc-rs 会话,不是旧 Electron 桌面壳。转发运行态不落盘;未点停止的 Listener 在同窗重连时可 retain / orphan-adopt。
| 仓 / 服务 | 职责 |
| ------------------------------ | -------------------------------------------------- |
| **本仓** `src/` + `src-tauri/` | 桌面客户端(唯一操作入口) |
| **本仓** `apps/server` | 官网落地页 + 用户文档(已并入原 `site-opsxshell`) |
| `opsx-licence` | 结账与授权(桌面只验 LIC / LICOFF) |
| `opsxdb` / `opsxapi` | 同族;同样「浏览器=官网/docs,操作=桌面」 |
## 目录
- `src/`:React UI(进 Tauri WebView)
- `src-tauri/`:Rust 原生能力
- `apps/server/`:Gin site/docs/health(薄服务,无操作面)
- `shared/`:契约;`src/platform/`:唯一 IPC 适配
- `test/patrol/`:改功能优先 `npm run test:patrol`
- `./run.sh web|gui` / `./scripts/build.sh`:开发与打包
暂不强制迁到 `apps/web` / `apps/desktop`;见 AGENTS.md「目录对齐说明」。
数据流:UI → Zustand → `platform` → Tauri command → Rust services。
## 硬边界(摘要)
不做堡垒机/审计;密钥 Rust 加密;转发运行态不落盘且停止即杀 Listener;不恢复旧 Electron 壳。细则见 AGENTS.md。