状态:canonical;更新:2026-09-08。分层与调用链见 架构。
1-app/ Git 仓库、分支与发布边界
├── AGENTS.md / docs/ 规则、架构、合同说明和平台交接
├── README.md / README.zh.md 面向使用者和贡献者的双语介绍
├── RELEASING.md / USAGE.md 发布规则与使用说明
├── .github/workflows/ CI、Tauri、Android、Linux 发布
├── Casks/ Homebrew 分发定义
├── Examples/ 示例数据
├── assets/ / video-materials/ 产品展示材料
├── scripts/ 仓库级辅助脚本
└── openless-all/
├── design_handoff_openless/ 设计交接材料
└── app/ npm 与 Core/Linux Cargo 工作目录
├── src/ React / TypeScript 界面
├── crates/openless-core/ 共享业务 Rust crate
├── src-tauri/ Tauri Host,独立 Cargo manifest
├── linux-egui/ Linux Host 和 egui UI
├── android/ Kotlin / AIDL / manifest / 前端片段
├── windows-ime/ 原生 TSF/IME 工程
├── contract/ 机器可读 backend-2.0 合同
├── scripts/ 构建、平台检查与合同测试
└── public/ Vite 静态资源
路径以 openless-all/app/ 为基准。
| 任务 | 入口 | 相关边界 |
|---|---|---|
| 启动与窗口分支 | src/main.tsx、src/App.tsx |
typed IPC 启动快照;Tauri 配置与运行时窗口 |
| 主界面、页面与设置 | src/components/FloatingShell.tsx、src/pages/、src/pages/settings/ |
src/state/ 组织界面状态;业务规则归 Core |
| 多语言、主题、组件 | src/i18n/、src/styles/、src/components/ |
八种界面语言;tokens/global 样式 |
| 新增或调整 IPC | src/lib/ipc/、src-tauri/src/commands/、src-tauri/src/lib.rs |
Rust/TypeScript 类型、注册、事件与 contract/ 同步 |
| 共享业务入口 | crates/openless-core/src/api.rs |
events.rs、ports.rs、domains.rs、config.rs |
| 听写和服务 | Core dictation_engine.rs、provider_*、asr/、polish.rs |
Host 的录音、插入和本地模型适配 |
| 历史、词库、纠错、风格包 | Core history.rs、vocabulary.rs、correction.rs、style_pack_store.rs |
Tauri persistence/ 与对应 command |
| 官方云同步 | Core cloud_sync.rs、cloud_sync_types.rs、cloud_sync_validation.rs、cloud_sync_transaction.rs |
Tauri commands/cloud_sync.rs;GitHub 身份、有限字段与版本冲突见 云同步合同 |
| Tauri 组装与系统能力 | src-tauri/src/coordinator.rs、core_adapters.rs、tauri_coordinator_host.rs |
窗口、热键、权限、平台输入与生命周期 |
| Linux 原生接入 | linux-egui/src/main.rs、lib.rs、backend.rs |
audio/credentials/fcitx5/hotkeys/settings 等 Host 模块;见 交接 |
| Android 集成 | android/、src-tauri/src/android/ |
@android 别名与 merge-android-*.mjs 生成链 |
| Windows 输入法 | windows-ime/、src-tauri/src/windows_ime_*.rs |
原生工程、IPC 协议、目标应用和安装检查 |
Core 其余模块按领域列于 架构模块地图。平台缺口、事件签名与验收项由专项文档维护,本文件只提供定位。
| 文件或目录 | 作用与维护方式 |
|---|---|
package.json / package-lock.json |
npm 命令、前端依赖与锁定版本;脚本从应用目录执行 |
Cargo.toml / Cargo.lock |
Core 与 Linux workspace;不覆盖 src-tauri |
src-tauri/Cargo.toml / Cargo.lock |
Tauri Host 的独立依赖图;本地 path 子模块须在解析前就绪 |
src-tauri/backend-tests/Cargo.toml |
独立 Rust 回归 crate,按 CI 选择平台执行 |
vite.config.ts / tsconfig.json |
WebView 构建、TypeScript 与 Android 别名 |
src-tauri/tauri.conf.json / src-tauri/capabilities/ |
应用元数据、初始窗口、打包与 Tauri 能力权限 |
src-tauri/vendor/ |
原生 ASR 引擎与子模块;升级按 qwen-asr 清单 |
src/lib/ipc/provider-descriptors.generated.json |
Core 导出的公开 provider 目录;生成命令见 架构 |
contract/language-catalog.json |
工作语言的原生保存值、显示代码、ASR 代码与 Apple locale;前端及 Core 直接共用,新增语种不分别修改三份映射 |
src-tauri/gen/ |
Tauri 平台生成目录;Android 手写源与合成脚本保留在 android/、scripts/ |
node_modules/、dist/、各 target/ |
依赖和构建产物,不作为源码或 docs 的事实来源 |
检查命令集中在 架构的验证入口,版本与发布流程集中在 RELEASING.md。不要在目录说明中复制易变的命令数量、分支领先数或单次测试结果。
应用目录的 .editorconfig 定义基础缩进和换行。TypeScript、JavaScript、CSS、HTML、JSON 与 shell 使用锁定版本的 Prettier,执行 npm run format 修改格式,执行 npm run format:check 检查。配置见 .prettierrc.json;生成文件和第三方源码不参与格式化。
Rust 使用 rustfmt,分别覆盖根 workspace、src-tauri/Cargo.toml 与 src-tauri/backend-tests/Cargo.toml。C/C++ 使用 clang-format 23,遵循应用目录的 .clang-format。Android 手写 Kotlin 使用 ktfmt 0.64 的 --kotlinlang-style --do-not-remove-unused-imports 选项。
注释说明当前职责、调用约束、生命周期与失败处理;涉及 FFI 时写明所有权和 ABI 前提。已完成任务的过程说明、失效文档引用及重复代码含义的注释应删除。对协议兼容或平台限制的说明保留必要依据。