R221-3R221-2-GATE-20260703.0335PASS2026-07-03 05:10:25 +08002.2.2 build 20260703.0335 候选构建路径。QA 允许 PMO 解锁 R221-4 发布冻结流程。该结论不等于 Windows 正式版通过、不等于 Windows 真机 QA 通过、不等于 Monterey 兼容通过、不等于 notarized 官网正式发布通过。
/Users/ar/Projects/PrivateVoice/Users/ar/Projects/PrivateVoice/03-O/Users/ar/Projects/PrivateVoice/03-O/C1.source/privatevoice.srccodex/x-asr-experiment-2.1.29abb469859662c285fac758c042812e0da943728f26.1 (25B78)go version go1.26.4 darwin/arm64v23.11.110.9.2git status --short --branch:当前分支 ahead 1,存在 R221 待审源码 / 文档 diff。git diff --cached --name-status:无输出,当前无 staged diff。git diff --stat:43 files changed,包含 R221 恢复源码、版本元数据、前端生命周期清理、Windows preview 脚本、CODEGRAPH / 管理文档等。cmd/benchmark-recognition/main.go、scripts/benchmark-recognition.sh、services/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.svelte、ToggleSwitch.svelte |
| 路径 | Evidence | 结论 |
|---|---|---|
| 核心语音输入 / 录音 / 识别流水线 | go test ./...;go test ./internal/model ./internal/modelselection ./internal/language ./internal/engine ./internal/audio ./services;go test . -run 'TestSlowRecognitionReason|TestRecognize|TestHotkey|TestLiveCaption|TestWaitForHotkeyRelease|TestReload|TestOverlay|TestVersion' |
自动化层 PASS;未在本机做真实麦克风、全局热键、粘贴上屏手动测试 |
| 设置 / 热键配置 | 前端 build PASS;diff 核对 GeneralPage.svelte、HotkeysPage.svelte 增加 onDestroy 和 clearHotkeyCapture() |
代码级生命周期清理路径通过;未做真实窗口交互测试 |
| 语言 / 模型选择 | 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 和 hashchange;LanguagePage.svelte 释放模型下载事件;PermissionsPage.svelte 释放 interval / timeout;SettingsWindow.svelte 释放 store subscription |
生命周期清理路径通过构建与代码核对;未做长时间打开 / 反复开关窗口的视觉 smoke |
| 项 | 命令 / 证据 | 结果 |
|---|---|---|
| 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.sh 内 APP_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.tsv、app.log、qa-target-dictation-text.txt、system-info.txt,成功时输出 WINDOWS_QA_EVIDENCE_PASS |
PASS |
QA 判断:Windows preview 构建路径与 evidence 规则可进入 R221-4 发布冻结环节,但发布 / 环境窗口必须补齐 MinGW 工具链并实际生成 / 验证 Windows preview ZIP。不能把 Windows preview 说成正式 Windows 版。
app.go:appVersion = "2.2.2",appBuild = "20260703.0335"。build/config.yml:version: "2.2.2"。build/darwin/Info.plist:CFBundleShortVersionString = 2.2.2,CFBundleVersion = 20260703.0335,LSMinimumSystemVersion = 14.0。frontend/package.json / package-lock.json:2.2.2。scripts/build-windows-preview.sh:2.2.2 / 20260703.0335。CHANGELOG.md:已有 v2.2.2 (2026-07-03),明确恢复 2.2.1 内容但正式候选升为 2.2.2。bash -n scripts/build-local-macos.sh、bash -n scripts/build-local-macos-universal.sh、bash -n scripts/build-release-macos.sh:PASS。go test ./... 输出 macOS 链接 warning:
@rpath/libonnxruntime.1.24.4.dylib 最低 macOS 14.0。QA 判断:
2.2.2,因为当前 mainline macOS 包口径为 LSMinimumSystemVersion = 14.0,且 Go 测试已通过。build-local-macos-monterey.sh、对应依赖最低系统和真机安装启动。WINDOWS_QA_EVIDENCE_PASS evidence zip。x86_64-w64-mingw32-gcc。这些风险不阻塞 R221-4 进入发布冻结流程,但必须在对应发布 / 平台任务中继续关闭;其中 Windows ZIP 生成必须先补齐 MinGW 工具链。