# Round 2 QA 预检记录 状态:预检通过,待真机 QA 日期:2026-06-03 分支:`codex/round2-language-settings` commit:`9a85354 Implement Round 2 language settings` worktree:`/Users/ar/Projects/VoiceSnap-2.1.1-Round2` ## 1. 已执行预检 ### 1.1 规则复读 已重新读取: - `/Users/ar/.codex/AGENTS.md` - `/Users/ar/Projects/VoiceSnap-2.1.1/AGENTS.md` - `/Users/ar/.codex/rules/work-continuity.md` - `/Users/ar/.codex/rules/delivery-gate.md` - `/Users/ar/.codex/rules/qa-workflow.md` 结论: - Round 2 当前仍有明确 QA Todo,应继续推进。 - 开发自测通过不等于 QA 完成。 - 真机 UI 交互、用户数据、权限、安装包类动作需要单独记录证据。 ### 1.2 自动化验证 已执行: ```bash cd privatevoice.src/frontend npm run build ``` 结果:PASS。 日志: ```text /Users/ar/Projects/VoiceSnap-2.1.1-Round2/02-P-NBL/round-2/logs/npm-run-build-20260603.log ``` 已执行: ```bash cd privatevoice.src go test ./... -count=1 ``` 结果:PASS。 日志: ```text /Users/ar/Projects/VoiceSnap-2.1.1-Round2/02-P-NBL/round-2/logs/go-test-all-20260603.log ``` 已执行: ```bash git diff --check ``` 结果:PASS。 ### 1.3 Focused Review 已复核: - 语言设置代码只新增 `LanguageMode` / `LanguageID`,不改 `SelectedModelID` 默认值。 - English profile 本轮默认模型仍为 `sensevoice-zh`。 - 设置页语言切换不调用模型下载、删除或迁移 API。 - App 启动时以前端调用后端 `GetLanguageSettings()` 为 i18n 事实源。 - 托盘菜单语言改为使用后端 effective language。 未发现立即阻断 Round 2 QA 的问题。 ## 2. 仍需真机 QA 的项目 以下项目不能仅靠自动化预检关闭: - 老用户旧 config 升级后 UI 默认中文。 - 设置页手动切换中文 / English / 自动后的即时 UI 切换。 - 重启后语言选择持久化。 - 切换语言后 `config.json`、`userdict.json`、`history.json`、模型目录不被破坏。 - 切换语言后断网识别仍可用。 - English UI 下设置页和 onboarding 关键文案可读。 - 不出现 Moonshine、Parakeet、Qwen3-ASR。 - macOS 窗口、Dock、菜单栏 smoke。 ## 3. 当前限制 尚未构建或安装 Round 2 App。 原因: - 项目规则要求:只有开发自测通过但 QA 尚未通过时,不得把版本作为测试人员可用包交付。 - Round 2 当前仍处于 QA 待执行状态。 - 如果要做真机 UI QA,需要单独运行或安装 Round 2 App,并记录对用户真实数据目录的影响。 ## 4. 建议下一步 进入 Round 2 真机 QA,建议顺序: 1. 在运行前备份当前 `/Users/ar/Library/Application Support/PrivateVoice Input`。 2. 使用 Round 2 worktree 构建本地运行实例或临时安装包。 3. 验证老用户升级路径。 4. 验证设置页语言切换。 5. 验证断网识别回归。 6. 生成 Round 2 QA 报告。