状态:QA 预检记录
所属子项目:02-P-NBL
Round:Round 1
日期:2026-06-02
输入文档:
当前结论:
研发自动化预检通过;尚不能进入用户验收;正式 QA 仍需固定分支/commit、可运行构建或测试包、真机真实模型验证。
本次已处理前一轮复核指出的研发问题:
state.json 路径限制在 models 根目录内,拒绝绝对路径和 .. 逃逸。ProviderOrder。need_model + error。EngineService.GetStatus() 补查可能错过的 engine 状态。models/sensevoice-zh,失败时尝试恢复 backup。| 命令 | 结果 | 说明 |
|---|---|---|
cd privatevoice.src/frontend && npm run build |
通过 | 前端构建通过,有既有 Svelte a11y warning |
cd privatevoice.src && go test ./internal/model -count=1 |
通过 | 模型包测试强制重跑 |
cd privatevoice.src && go test ./... -count=1 |
通过 | Go 全量测试强制重跑;新 checkout 需先完成前端构建以生成 frontend/dist |
前端构建 warning:
src/components/update/UpdateDialog.svelte:dialog focus / noninteractive listener warning。src/components/shared/ToggleSwitch.svelte:button aria label warning。判断:
这些 warning 不由 Round 1 改动引入,本轮未修改对应组件。
已覆盖:
sensevoice-zh。RequiredFileRule.AnyOf。RequiredFileRule.AllOf。model.int8.onnx 优先于 model.onnx。tokens.txt 失败。models/sensevoice 可解析。models/sensevoice-zh。state.json fallback。../ 逃逸时拒绝并 fallback。installed_incomplete。models/sensevoice-zh。已新增:
privatevoice.src/testdata/round1/
包含:
models-valid-legacy/models-valid-new/models-incomplete-missing-tokens/models-incomplete-missing-model/models-zero-byte/state-invalid-json/state-points-to-legacy/state-points-to-broken/userdict.jsonhistory.json说明:
这些 fixture 是轻量 fake model 文件,只用于路径、state、校验、fallback 的确定性测试。
它们不能替代真实 SenseVoice 模型识别验证。
| 项目 | 状态 | 说明 |
|---|---|---|
| 固定分支 | 已完成 | codex/round1-model-profile |
| 固定 commit id | 待完成 | 暂存区已收拢,提交后进入正式 QA 基线 |
| 可运行 App 或测试包 | 未完成 | 尚未打包 |
| 原始测试日志文件 | 未完成 | 当前结果记录在对话和本文件中,未单独落日志文件 |
| 真实 SenseVoice 模型下载 | 未完成 | 需要真实网络和模型源 |
| 真实 SenseVoice 初始化 | 未完成 | 需要真实模型文件 |
| 真机麦克风验证 | 未完成 | 需要 macOS 权限和真实录音 |
| 断网真实识别 | 未完成 | 需要真实模型和真机 |
| 网络观察 | 未完成 | 需要真机验证识别阶段无上传 |
正式 QA 必须覆盖:
models/sensevoice 断网升级路径。models/sensevoice-zh 新用户下载路径。建议顺序:
qa-test-plan.md 执行真机场景。qa-report-YYYYMMDD.md。CHANGELOG.md、打包 .dmg。