edit | blame | history | raw

R221-3 QA Evidence

结论

  • 任务 ID:R221-3
  • Review Gate ID:R221-2-GATE-20260703.0335
  • QA 结论:PASS
  • 时间:2026-07-03 05:10:25 +0800
  • 范围:验证恢复后的当前源码与 2.2.2 build 20260703.0335 候选构建路径。
  • 不做范围:不修改源码、不创建 tag、不生成正式发布包、不把本地 QA evidence 当作发布候选。

QA 允许 PMO 解锁 R221-4 发布冻结流程。该结论不等于 Windows 正式版通过、不等于 Windows 真机 QA 通过、不等于 Monterey 兼容通过、不等于 notarized 官网正式发布通过。

环境

  • 项目根:/Users/ar/Projects/PrivateVoice
  • Git 根:/Users/ar/Projects/PrivateVoice/03-O
  • 源码根:/Users/ar/Projects/PrivateVoice/03-O/C1.source/privatevoice.src
  • 分支:codex/x-asr-experiment-2.1.29
  • HEAD:abb469859662c285fac758c042812e0da943728f
  • macOS:26.1 (25B78)
  • Go:go version go1.26.4 darwin/arm64
  • Node:v23.11.1
  • npm:10.9.2

工作区核对

  • git status --short --branch:当前分支 ahead 1,存在 R221 待审源码 / 文档 diff。
  • git diff --cached --name-status:无输出,当前无 staged diff。
  • git diff --stat:43 files changed,包含 R221 恢复源码、版本元数据、前端生命周期清理、Windows preview 脚本、CODEGRAPH / 管理文档等。
  • 新增源码文件已在 diff 范围:cmd/benchmark-recognition/main.goscripts/benchmark-recognition.shservices/diagnostics_service.go

标准源码门禁

命令 结果 备注
空白检查 git diff --check PASS 无输出
gofmt 状态 git diff --name-only -- C1.source/privatevoice.src | grep -E '\.go$' | xargs gofmt -l PASS 无输出,表示当前变更 Go 文件格式干净
Go 测试 go test ./... PASS with warning 复现 macOS 链接 warning,未导致测试失败
前端构建 npm --prefix frontend run build PASS with warning 复现既有 Svelte a11y warning:UpdateDialog.svelteToggleSwitch.svelte

核心路径核对

路径 Evidence 结论
核心语音输入 / 录音 / 识别流水线 go test ./...go test ./internal/model ./internal/modelselection ./internal/language ./internal/engine ./internal/audio ./servicesgo test . -run 'TestSlowRecognitionReason|TestRecognize|TestHotkey|TestLiveCaption|TestWaitForHotkeyRelease|TestReload|TestOverlay|TestVersion' 自动化层 PASS;未在本机做真实麦克风、全局热键、粘贴上屏手动测试
设置 / 热键配置 前端 build PASS;diff 核对 GeneralPage.svelteHotkeysPage.svelte 增加 onDestroyclearHotkeyCapture() 代码级生命周期清理路径通过;未做真实窗口交互测试
语言 / 模型选择 go test ./internal/model ./internal/modelselection ./internal/language ./internal/engine ./internal/audio ./services PASS;go test ./internal/model -run 'Test.*Yue|Test.*Cantonese|Test.*Language' PASS 自动化层覆盖语言 / 模型解析
粤语 yue-HK rg 核对 CantoneseLanguageID = "yue-HK"SenseVoiceYueModelID = "sensevoice-yue-2025-09-09"LanguageParam: "yue"internal/engine 测试 PASS 粤语注册与 SenseVoice yue 参数路径通过
前端生命周期风险 diff 核对 App.svelte 释放 Wails event off hooks 和 hashchangeLanguagePage.svelte 释放模型下载事件;PermissionsPage.svelte 释放 interval / timeout;SettingsWindow.svelte 释放 store subscription 生命周期清理路径通过构建与代码核对;未做长时间打开 / 反复开关窗口的视觉 smoke

Windows Preview 适配回归

命令 / 证据 结果
Windows cross smoke GOOS=windows GOARCH=amd64 CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ go test -exec=/usr/bin/true ./... NOT COVERED:本机缺 x86_64-w64-mingw32-gcc,命令失败于工具链,不是源码测试失败
编译器检查 command -v x86_64-w64-mingw32-gcc 未找到
Windows build 脚本语法 bash -n scripts/build-windows-preview.sh PASS
Windows evidence verifier 语法 bash -n scripts/verify-windows-qa-evidence.sh PASS
版本 / build scripts/build-windows-preview.shAPP_VERSION="2.2.2"APP_BUILD="20260703.0335" PASS
preview 口径 README-WINDOWS-PREVIEW.txt 模板声明 unsigned preview、不是安装器、需 Windows 10/11 QA PASS
evidence 要求 verify-windows-qa-evidence.sh 要求 qa-results.tsvapp.logqa-target-dictation-text.txtsystem-info.txt,成功时输出 WINDOWS_QA_EVIDENCE_PASS PASS

QA 判断:Windows preview 构建路径与 evidence 规则可进入 R221-4 发布冻结环节,但发布 / 环境窗口必须补齐 MinGW 工具链并实际生成 / 验证 Windows preview ZIP。不能把 Windows preview 说成正式 Windows 版。

版本与构建路径

  • app.goappVersion = "2.2.2"appBuild = "20260703.0335"
  • build/config.ymlversion: "2.2.2"
  • build/darwin/Info.plistCFBundleShortVersionString = 2.2.2CFBundleVersion = 20260703.0335LSMinimumSystemVersion = 14.0
  • frontend/package.json / package-lock.json2.2.2
  • scripts/build-windows-preview.sh2.2.2 / 20260703.0335
  • CHANGELOG.md:已有 v2.2.2 (2026-07-03),明确恢复 2.2.1 内容但正式候选升为 2.2.2
  • bash -n scripts/build-local-macos.shbash -n scripts/build-local-macos-universal.shbash -n scripts/build-release-macos.sh:PASS。

macOS Warning / Monterey 判断

go test ./... 输出 macOS 链接 warning:

  • Go / CLT 临时 object 标记为 macOS 26.0,高于链接目标 macOS 11.0。
  • @rpath/libonnxruntime.1.24.4.dylib 最低 macOS 14.0。

QA 判断:

  • 不阻塞当前主线 2.2.2,因为当前 mainline macOS 包口径为 LSMinimumSystemVersion = 14.0,且 Go 测试已通过。
  • 不得据此声称 Monterey 兼容。若 Owner 需要覆盖 macOS 12 / Monterey,必须单独升级 Monterey QA / 构建任务,至少验证 build-local-macos-monterey.sh、对应依赖最低系统和真机安装启动。

未覆盖风险

  • 未做真实麦克风录音、全局热键、Notepad / 输入框粘贴、overlay 视觉稳定性、菜单栏 / Dock 图标策略的手动 smoke。
  • 未做 Windows 10/11 真机 QA,未收回 WINDOWS_QA_EVIDENCE_PASS evidence zip。
  • 未跑 Windows cross smoke,原因是本机缺 x86_64-w64-mingw32-gcc
  • 未做 Monterey 验证。
  • 未做 notarization、Developer ID 官网发布链路、下载页 / 授权 / 更新 / 回滚链路验证。

这些风险不阻塞 R221-4 进入发布冻结流程,但必须在对应发布 / 平台任务中继续关闭;其中 Windows ZIP 生成必须先补齐 MinGW 工具链。