chore: 官网拆分 homepage + 关于页瘦身 + 端口 5175(当前可用状态基线)
This commit is contained in:
1 parent
5eb11826db
commit
be151cb68f
85 files changed
+4420
-1530
No files matched your search
+20
-1
@@ -8,12 +8,14 @@ OpsXShell 是简单好用的原生运维终端:短路径完成连接、终端
|
||||
|
||||
```text
|
||||
src/ React 界面、工作区和 Zustand 状态
|
||||
src/features/settings/ 设置模型、快捷键录入 Hook 和设置控件(渐进拆分)
|
||||
src/i18n/ 界面文案(zh-CN / zh-TW / en / ja / ko / vi / ru)与 locale 检测
|
||||
src/platform/ Tauri command/event 适配层
|
||||
shared/types/ 渲染层 TypeScript 契约
|
||||
src-tauri/src/commands/ 参数边界和统一响应
|
||||
src-tauri/src/domain/ Rust 领域模型
|
||||
src-tauri/src/services/ SSH、SFTP、隧道、PTY、串口、桌面、AI、存储和安全策略
|
||||
src-tauri/target/…/bundle/ Tauri 2 标准产物(debug/release 的 .app / dmg / nsis)
|
||||
```
|
||||
|
||||
React 不直接访问 SSH、文件系统或加密实现。Rust 服务持有连接、Shell、SFTP、串口和桌面会话资源,渲染层只保存资源 ID 与界面状态。新增原生接口时必须同步更新:
|
||||
@@ -22,7 +24,7 @@ React 不直接访问 SSH、文件系统或加密实现。Rust 服务持有连
|
||||
2. `src/desktop.d.ts` 类型契约
|
||||
3. 对应 `src/platform/*.ts` 适配实现(通用能力走 `desktop.ts`,RDP / VNC 走 `rdp.ts` / `vnc.ts`)
|
||||
4. `test/setup.ts` 测试替身
|
||||
5. 若有用户可见文案:同步 `src/i18n/locales/{zh-CN,en}/` 并保证 key 对齐
|
||||
5. 若有用户可见文案:同步 `src/i18n/locales/` 七语种并保证 key 对齐
|
||||
|
||||
Rust SSH 服务保留 `ssh.rs` 作为连接与 Shell 门面,已将独立边界拆出:
|
||||
|
||||
@@ -49,6 +51,17 @@ services/
|
||||
|
||||
模块化只约束内部职责,不引入插件框架,也不把 libssh2 或桌面协议引擎资源暴露到 command 层。后续 connection/shell 拆分继续保持现有 Tauri command 契约不变。
|
||||
|
||||
## 已落地的职责边界
|
||||
|
||||
- 本地文件读写、目录列表、元数据和增删改在 `src-tauri/src/services/files.rs`,DTO 在 `domain/files.rs`;该 service 不依赖 Tauri。Command 负责调度 `spawn_blocking` 和返回失败信封;原生文件对话框仍在主线程。
|
||||
- `domain/error.rs` 提供 `AppError` 和稳定错误码,目前部分文件操作接入。SSH、存储、桌面等 service 仍有 Tauri 依赖,全量错误迁移和 EventSink 尚未完成。
|
||||
- `src/platform/invoke.ts` 统一调用与拒绝错误映射;`NativeCommandError` 保留 command、detail、errorCode、originalError。它不把业务失败信封自动抛出,也不统一弹 toast 或为所有原生操作添加超时。
|
||||
- `features/settings/model.ts` 管默认值和归一化,`useKeyRecording.ts` 管录入生命周期,`SettingControls.tsx` 提供设置控件。`components/settings/SettingsView.tsx` 仍负责页面组合与部分交互;其他领域尚未全量迁入 features。
|
||||
- `settingsStore` 串行处理加载与保存:已确认快照叠加待保存修改形成即时 UI,保存成功才更新确认快照,失败只撤回对应项并提示,不把失败修改写入后续快照。错误由 store 消化并通知,不能仅凭 `Promise<void>` 完成就判断保存成功。
|
||||
- 应用主题沿用 `themes/app-theme.ts` 颜色 token;`useTheme` 同步系统偏好、返回的有效主题、DOM 和边框变量。主题偏好随设置保存;尚未完成全界面样式 token 化,也未验证冷启动异步加载设置时完全无闪烁。
|
||||
|
||||
剩余重构见 [架构重构](architecture-refactor.md)。
|
||||
|
||||
## 原生服务
|
||||
|
||||
| 能力 | 实现 |
|
||||
@@ -173,3 +186,9 @@ SSH 传输本身受协议 MAC 保护;当前应用额外执行大小校验,
|
||||
| Linux AppImage | 35 MB |
|
||||
|
||||
Release 使用 LTO、单 codegen unit、`panic = abort` 和符号剥离。平台功能必须在对应系统实机验收。
|
||||
|
||||
## 开发态 Dock 图标(已知限制)
|
||||
|
||||
`./run.sh gui` 走 `tauri dev`,macOS 启动的是 `src-tauri/target/debug/` 下的裸二进制。Dock 对非 `.app` 进程显示默认齿轮图标——这是 Tauri 通病,不是 `bundle.icon` 没配。正式 `tauri build` 的 `.app` / DMG 三族图标一致。
|
||||
|
||||
安装包与校验和只放在 `src-tauri/target/<triple>/release/bundle/`,由 `build.sh` / `release.py` 直接读写,不再拷到仓库根 `release/`。opsxapi 开发态正确 Dock 图标来自临时 `.app` 壳(`src-tauri/target/gui-app/`,刷 `icon.icns`)。要对齐开发态 Dock 图标应复用该壳,而不是另建发版目录。
|
||||
Reference in new issue
Block a user