Files
dudu/CLAUDE.md
T
wangjia 4ec294be40
ci / server (push) Failing after 10s
ci / design-system (push) Failing after 11s
docs+chore: 补 CLAUDE.md(联调启动 + 真相源约定)与 desktop/run-dev.sh
(此前误报已完成实为未提交,现真实补上。)
- desktop/run-dev.sh:桌面端启动脚本,对齐 server/run-dev.sh,含麦克风权限提示
- CLAUDE.md:两条联调启动命令 + 麦克风/邮箱登录踩坑 + 真相源与闸约定 +
  透明窗口范式 + TODO 约定

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-11 21:02:53 +08:00

38 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# dudu — Claude 项目约定
五端语音输入法:Go 后端 + 桌面(Tauri 2)/Android/iOS/官网。按住快捷键说话 → 流式识别 → 上屏;时长计费,微信/邮箱登录。
## 本地联调启动(两个终端)
前置:`cd server && docker compose up -d`(起 pg/redis);`rbw unlock`(取 DashScope key)。
```bash
# 终端 A — 后端 API(有 DashScope key 走真实 gummy,无则 mockmock 邮件固定验证码 888888
cd server && ./run-dev.sh
# 终端 B — 桌面端(必须从你自己的终端前台跑,麦克风权限才归属该终端)
cd desktop && ./run-dev.sh
```
- dudu 是**托盘应用无主窗口**:菜单栏找蓝底声纹图标,设置/登录从托盘菜单点出。
- **麦克风**dev 跑裸二进制 `target/debug/dudu-desktop`,权限归属父终端。首次没声音 → 系统设置 → 隐私与安全性 → 麦克风 勾选你的终端 → 完全退出 dudu 重启(TCC 变更需重启进程)。打包版由 `src-tauri/Info.plist``NSMicrophoneUsageDescription` 触发系统授权框。
- **邮箱登录**:登录窗切「邮箱登录」→ 任意邮箱 → 发送验证码 → 填 **888888**(仅 `AUTH_EMAIL_DEV_CODE` 设置时固定,`run-dev.sh` 已设;生产随机)。
## 真相源(改前必读)
- **协议**:只改 `server/pkg/protocol`,五端对照实现。
- **界面**`design/` 是唯一真相源,改 UI 前读登记簿 `design/index.html`。新颜色/组件/图标先登记 `design/tokens` | `components`+`index.html` | `icons.js`+`icon-map.json`,再写端代码。业务代码禁字面色(用 `var(--*)`/`DuduTheme`)、禁内联 `<path>`(走 `Icon`)、禁 emoji。
- **令牌 codegen**`design/tokens` 变更后 `node design-pipeline/export-tokens.mjs`(直写 ios/android/web 消费位置)并提交产物。
- **组件源码变更后**`node design-pipeline/bundle-components.mjs` 重建原型运行时 `design/_ds_bundle.js` 并提交。
- **防漂移闸**pre-commit + CI,启用:`git config core.hooksPath .githooks`):
`node design-pipeline/check-ds.mjs`(真相源自检)· `check-code.mjs`(代码侧单源)· `export-tokens.mjs --check`(产物零 diff)。
- 全景说明:`doc/frontend-overview.html`;改窗口先看 `design/ui_kits/desktop/`(原型先行)。
## 窗口范式(桌面)
透明无边框窗口共用 `desktop/src/shared/WindowFrame.jsx``transparent` + `titleBarStyle:Overlay` + `hiddenTitle` + `trafficLightPosition {18,18}` + macOS 原生阴影;页面自绘圆角边框。识别浮层/托盘/设置/登录均为此范式。**必须开 `macOSPrivateApi:true`**,否则透明窗口画白底。
## TODO
经全局 `/todo` skill 管理(看板 `todo/todo.html`),状态 open→doing→done→(用户)accepted。**禁用内置 TodoWrite。**