Ariver
2026-06-03 aec585f81387038f9e6329b1fe852ea4a2d9d8d5
Consolidate PrivateVoice project records
1 files modified
67 files added
3242 ■■■■■ changed files
02-P-NBL/freeze/20260603-directory-consolidation.md 135 ●●●●● patch | view | raw | blame | history
02-P-NBL/round-1/logs/qa-runtime/app-log-tail-20260602.log 260 ●●●●● patch | view | raw | blame | history
02-P-NBL/round-1/logs/qa-runtime/network-sample-20260602.log 31 ●●●●● patch | view | raw | blame | history
02-P-NBL/round-1/logs/qa-runtime/new-user-clean-install-20260602.231851.launch.log 55 ●●●●● patch | view | raw | blame | history
02-P-NBL/round-1/logs/qa-runtime/new-user-clean-install-20260602.231851.recognition.log 49 ●●●●● patch | view | raw | blame | history
02-P-NBL/round-1/logs/qa-runtime/new-user-clean-install-20260602.231851.restore.log 72 ●●●●● patch | view | raw | blame | history
02-P-NBL/round-1/logs/qa-runtime/new-user-clean-install-20260602.231851.setup.log 5 ●●●●● patch | view | raw | blame | history
02-P-NBL/round-1/logs/qa-runtime/new-user-recognition-20260603.005122.launch.log 63 ●●●●● patch | view | raw | blame | history
02-P-NBL/round-1/logs/qa-runtime/new-user-recognition-20260603.005122.recognition.log 191 ●●●●● patch | view | raw | blame | history
02-P-NBL/round-1/logs/qa-runtime/new-user-recognition-20260603.005122.restore.log 93 ●●●●● patch | view | raw | blame | history
02-P-NBL/round-1/logs/qa-runtime/new-user-recognition-20260603.005122.setup.log 5 ●●●●● patch | view | raw | blame | history
02-P-NBL/round-1/logs/qa-runtime/offline-restart-app-log-20260602.log 65 ●●●●● patch | view | raw | blame | history
02-P-NBL/round-1/logs/qa-runtime/offline-restart-postcheck-20260602.log 22 ●●●●● patch | view | raw | blame | history
02-P-NBL/round-1/logs/qa-runtime/offline-restart-test-20260602.223742.log 4 ●●●● patch | view | raw | blame | history
02-P-NBL/round-1/logs/qa-runtime/offline-restart-test-20260602.225709.log 4 ●●●● patch | view | raw | blame | history
02-P-NBL/round-1/logs/qa-runtime/offline-restart-test-20260602.225709.pid 1 ●●●● patch | view | raw | blame | history
02-P-NBL/round-1/qa-report-20260602-2.1.19.md 458 ●●●●● patch | view | raw | blame | history
02-P-NBL/round-2/logs/qa-runtime/build-local-round2-20260603.014931.log 144 ●●●●● patch | view | raw | blame | history
02-P-NBL/round-2/logs/qa-runtime/current-run-id.txt 1 ●●●● patch | view | raw | blame | history
02-P-NBL/round-2/logs/qa-runtime/new-user-run-20260603.014931.log 23 ●●●●● patch | view | raw | blame | history
02-P-NBL/round-2/logs/qa-runtime/new-user-run-20260603.014931.pid 1 ●●●● patch | view | raw | blame | history
02-P-NBL/round-2/logs/qa-runtime/offline-start-check-20260603.014931.log 38 ●●●●● patch | view | raw | blame | history
02-P-NBL/round-2/logs/qa-runtime/offline-voice-final-20260603.014931.log 62 ●●●●● patch | view | raw | blame | history
02-P-NBL/round-2/logs/qa-runtime/offline-voice-safety-20260603.014931.log 2 ●●●●● patch | view | raw | blame | history
02-P-NBL/round-2/logs/qa-runtime/offline-voice-safety-20260603.014931.pid 1 ●●●● patch | view | raw | blame | history
02-P-NBL/round-2/logs/qa-runtime/offline-voice-start-20260603.014931.log 1 ●●●● patch | view | raw | blame | history
02-P-NBL/round-2/logs/qa-runtime/round2-local-run-20260603.014931.log 57 ●●●●● patch | view | raw | blame | history
02-P-NBL/round-2/logs/qa-runtime/round2-local-run-20260603.014931.pid 1 ●●●● patch | view | raw | blame | history
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-activated.png patch | view | raw | blame | history
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-after-restart.png patch | view | raw | blame | history
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-chinese.png patch | view | raw | blame | history
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-cursor-1095-523.png patch | view | raw | blame | history
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-cursor-1260-565.png patch | view | raw | blame | history
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-cursor-693-310.png patch | view | raw | blame | history
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-english.png patch | view | raw | blame | history
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-english2.png patch | view | raw | blame | history
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-english3.png patch | view | raw | blame | history
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-english4.png patch | view | raw | blame | history
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-english5.png patch | view | raw | blame | history
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-english6.png patch | view | raw | blame | history
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-initial.png patch | view | raw | blame | history
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-new-user.png patch | view | raw | blame | history
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-zh-manual.png patch | view | raw | blame | history
AGENTS.md 28 ●●●●● patch | view | raw | blame | history
Release/PrivateVoice-Input-2.1.18-build20260601.1905/SHA256SUMS.txt 2 ●●●●● patch | view | raw | blame | history
Release/PrivateVoice-Input-2.1.19-build20260602.2022/RELEASE_MANIFEST.md 110 ●●●●● patch | view | raw | blame | history
Release/PrivateVoice-Input-2.1.19-build20260602.2022/SHA256SUMS.txt 2 ●●●●● patch | view | raw | blame | history
Release/PrivateVoice-Input-2.1.19-build20260602.2022/logs/build-arm64.log 146 ●●●●● patch | view | raw | blame | history
Release/PrivateVoice-Input-2.1.19-build20260602.2022/logs/build-x86_64.log 145 ●●●●● patch | view | raw | blame | history
Release/PrivateVoice-Input-2.1.20-build20260603.1145/RELEASE_MANIFEST.md 128 ●●●●● patch | view | raw | blame | history
Release/PrivateVoice-Input-2.1.20-build20260603.1145/SHA256SUMS.txt 2 ●●●●● patch | view | raw | blame | history
Release/PrivateVoice-Input-2.1.20-build20260603.1145/logs/build-arm64.log 144 ●●●●● patch | view | raw | blame | history
Release/PrivateVoice-Input-2.1.20-build20260603.1145/logs/build-x86_64.log 145 ●●●●● patch | view | raw | blame | history
Release/PrivateVoice-Input-2.1.20-build20260603.1145/logs/verify-dmgs.log 60 ●●●●● patch | view | raw | blame | history
Release/PrivateVoice-Input-2.1.21-build20260603.1327/RELEASE_MANIFEST.md 88 ●●●●● patch | view | raw | blame | history
Release/PrivateVoice-Input-2.1.21-build20260603.1327/SHA256SUMS.txt 2 ●●●●● patch | view | raw | blame | history
Release/PrivateVoice-Input-2.1.21-build20260603.1327/logs/build-arm64.log 130 ●●●●● patch | view | raw | blame | history
Release/PrivateVoice-Input-2.1.21-build20260603.1327/logs/build-x86_64.log 136 ●●●●● patch | view | raw | blame | history
Release/PrivateVoice-Input-2.1.21-build20260603.1327/logs/moonshine-download-load.log 14 ●●●●● patch | view | raw | blame | history
Release/PrivateVoice-Input-2.1.21-build20260603.1327/logs/verify-dmgs.log 34 ●●●●● patch | view | raw | blame | history
Release/PrivateVoice-Input-2.1.23-build20260603.1904/SHA256SUMS.txt 2 ●●● patch | view | raw | blame | history
Release/X-旧版build成果/PrivateVoice-Input-2.1.10-build20260530.1640/测试说明.md 30 ●●●●● patch | view | raw | blame | history
Release/X-旧版build成果/PrivateVoice-Input-2.1.12-build20260530.1800/测试说明.md 40 ●●●●● patch | view | raw | blame | history
Release/X-旧版build成果/PrivateVoice-Input-2.1.13-build20260530.1949/SHA256SUMS.txt 2 ●●●●● patch | view | raw | blame | history
Release/X-旧版build成果/PrivateVoice-Input-2.1.14-build20260531.0120/SHA256SUMS.txt 2 ●●●●● patch | view | raw | blame | history
Release/X-旧版build成果/PrivateVoice-Input-2.1.15-build20260531.1102/SHA256SUMS.txt 2 ●●●●● patch | view | raw | blame | history
Release/X-旧版build成果/PrivateVoice-Input-2.1.16-build20260531.1131/SHA256SUMS.txt 2 ●●●●● patch | view | raw | blame | history
Release/X-旧版build成果/PrivateVoice-Input-2.1.17-build20260531.1359/SHA256SUMS.txt 2 ●●●●● patch | view | raw | blame | history
02-P-NBL/freeze/20260603-directory-consolidation.md
New file
@@ -0,0 +1,135 @@
# 目录收拢与冻结前审计记录
日期:2026-06-03
## 目标
将此前分散在多个临时 worktree 中的项目资料与构建产物,收拢到正式项目目录:
```text
/Users/ar/Projects/PrivateVoice
```
本次只做无破坏收拢:
- 不删除旧目录。
- 不移动旧 worktree。
- 不覆盖已有文件。
- 不改变最新冻结源码 tag。
## 正式目录
| 项目 | 值 |
|---|---|
| 正式目录 | `/Users/ar/Projects/PrivateVoice` |
| 分支 | `codex/privatevoice-freeze-2.1.25` |
| 当前 HEAD | `5de2a0495c233e6f12ae1ebb6e71cb6c73fbbc72` |
| 最新源码 tag | `v2.1.25-build20260603.2102` |
| 最新源码 tag 指向 | `a149d7b7bbbcc330b12ef0aa6b3d07d8ddaa860e` |
说明:`a149d7b` 是生成 `2.1.25 build 20260603.2102` 的源码 commit;`5de2a04` 是随后记录 release manifest 的资料 commit。
## 已收拢目录
### 项目资料
Round 资料已统一放回:
```text
/Users/ar/Projects/PrivateVoice/02-P-NBL
```
当前包含:
- `round-1`
- `round-2`
- `round-3`
- `round-4`
- `round-5`
- 总体 `product-plan.md`
- 总体 `engineering-plan.md`
- 总体 `plan.md`
补充收拢内容:
- Round 1 最终 QA 报告:`02-P-NBL/round-1/qa-report-20260602-2.1.19.md`
- Round 1 QA runtime 日志。
- Round 2 QA runtime 日志。
未收拢内容:
- `QA-backups/` 用户环境备份目录未复制,避免把真实用户数据备份混入正式项目资料。
### Release 产物
构建产物已统一放回:
```text
/Users/ar/Projects/PrivateVoice/Release
```
当前 Release 目录包含:
- 13 份 `SHA256SUMS.txt`
- 27 份 `.dmg`
- 当前主线候选包:`PrivateVoice-Dictation-2.1.25-build20260603.2102`
- 历史主线包:`2.1.18` 到 `2.1.23`
- 旧版归档:`Release/X-旧版build成果`
没有收拢的原目录杂项:
- `/Users/ar/Projects/VoiceSnap-2.1.1/Release/Github`
- `/Users/ar/Projects/VoiceSnap-2.1.1/Release/PrivateVoice私语输入.md`
原因:上述内容不是标准 build 目录,未纳入本次冻结前构建产物收拢。
## 校验结果
已执行:
```bash
find Release -name SHA256SUMS.txt -print0 | sort -z | while IFS= read -r -d '' f; do
  d=$(dirname "$f")
  (cd "$d" && shasum -a 256 -c SHA256SUMS.txt)
done
```
结果:
- `2.1.18` 到 `2.1.25` 已有 SHA256 记录的 DMG:全部 `OK`。
- 旧版归档中已有 SHA256 记录的 DMG:全部 `OK`。
修正项:
- `Release/PrivateVoice-Input-2.1.23-build20260603.1904/SHA256SUMS.txt` 原本记录了带 `Release/...` 前缀的路径,已改为目录内文件名,便于统一执行 `shasum -c`。
## 临时 worktree 处理策略
以下旧目录暂不删除:
```text
/Users/ar/Projects/VoiceSnap-2.1.1
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build
/Users/ar/Projects/VoiceSnap-2.1.1-Round2
/Users/ar/Projects/VoiceSnap-2.1.1-Round3
/Users/ar/Projects/VoiceSnap-2.1.1-Round4
/Users/ar/Projects/VoiceSnap-2.1.1-Round5
```
原因:
- 它们是 git worktree,不是普通临时目录。
- 部分目录仍有未提交或未跟踪资料。
- 今晚冻结和上架前,优先保证正式目录完整可用,不做删除类操作。
后续建议:
1. 先完成 `/Users/ar/Projects/PrivateVoice` 的版本冻结和上架资料准备。
2. 冻结确认后,再按 `git worktree remove` 流程清理旧 worktree。
3. 清理前再次确认旧目录内没有未收拢资料。
## 当前结论
`/Users/ar/Projects/PrivateVoice` 已成为后续工作的正式目录。
今晚继续冻结、上架资料准备、正式包整理,都应在该目录进行。
02-P-NBL/round-1/logs/qa-runtime/app-log-tail-20260602.log
New file
@@ -0,0 +1,260 @@
[2026-06-02 21:57:00] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-02 21:57:00] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 21:57:00] INFO Hotkey released: key=R-Alt mode=hold duration=2942ms recording=true combination=false
[2026-06-02 21:57:00] INFO Stopping audio device
[2026-06-02 21:57:00] INFO Recording stopped, 44000 samples captured
[2026-06-02 21:57:00] INFO Audio device stopped
[2026-06-02 21:57:00] INFO Audio device uninitialized
[2026-06-02 21:57:00] INFO Recognized: 比如人家 Kmy 现在要钱了。
[2026-06-02 21:57:55] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=695 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.024s tapStarted=true
[2026-06-02 21:57:55] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-02 21:57:55] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 21:57:55] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-02 21:57:55] INFO Hotkey action: start hold-to-talk after 207ms
[2026-06-02 21:57:55] INFO Recording started
[2026-06-02 21:57:55] INFO Recording started (16kHz/16-bit/mono)
[2026-06-02 21:57:58] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=696 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.025s tapStarted=true
[2026-06-02 21:57:58] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-02 21:57:58] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 21:57:58] INFO Hotkey released: key=R-Alt mode=hold duration=2729ms recording=true combination=false
[2026-06-02 21:57:58] INFO Stopping audio device
[2026-06-02 21:57:58] INFO Recording stopped, 40000 samples captured
[2026-06-02 21:57:58] INFO Audio device stopped
[2026-06-02 21:57:58] INFO Audio device uninitialized
[2026-06-02 21:57:58] INFO Recognized: 这玩意是破解解净了的。
[2026-06-02 21:59:00] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=697 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.025s tapStarted=true
[2026-06-02 21:59:00] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-02 21:59:00] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 21:59:00] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-02 21:59:01] INFO Hotkey action: start hold-to-talk after 207ms
[2026-06-02 21:59:01] INFO Recording started
[2026-06-02 21:59:01] INFO Recording started (16kHz/16-bit/mono)
[2026-06-02 21:59:05] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=698 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.010s tapStarted=true
[2026-06-02 21:59:05] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-02 21:59:05] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 21:59:05] INFO Hotkey released: key=R-Alt mode=hold duration=4317ms recording=true combination=false
[2026-06-02 21:59:05] INFO Stopping audio device
[2026-06-02 21:59:05] INFO Recording stopped, 65600 samples captured
[2026-06-02 21:59:05] INFO Audio device stopped
[2026-06-02 21:59:05] INFO Audio device uninitialized
[2026-06-02 21:59:05] INFO Recognized: 我想做一个终极个人知识管理神器。
[2026-06-02 21:59:08] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=699 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.021s tapStarted=true
[2026-06-02 21:59:08] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-02 21:59:08] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 21:59:08] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-02 21:59:08] INFO Hotkey action: start hold-to-talk after 181ms
[2026-06-02 21:59:08] INFO Recording started
[2026-06-02 21:59:08] INFO Recording started (16kHz/16-bit/mono)
[2026-06-02 21:59:11] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=700 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.029s tapStarted=true
[2026-06-02 21:59:11] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-02 21:59:11] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 21:59:11] INFO Hotkey released: key=R-Alt mode=hold duration=3540ms recording=true combination=false
[2026-06-02 21:59:11] INFO Stopping audio device
[2026-06-02 21:59:11] INFO Recording stopped, 53600 samples captured
[2026-06-02 21:59:11] INFO Audio device stopped
[2026-06-02 21:59:11] INFO Audio device uninitialized
[2026-06-02 21:59:11] INFO Recognized: 你觉得我起一个什么样的英文名字比较好?
[2026-06-02 22:01:02] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=701 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.014s tapStarted=true
[2026-06-02 22:01:02] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-02 22:01:02] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 22:01:02] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-02 22:01:02] INFO Hotkey action: start hold-to-talk after 203ms
[2026-06-02 22:01:02] INFO Recording started
[2026-06-02 22:01:03] INFO Recording started (16kHz/16-bit/mono)
[2026-06-02 22:01:10] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=702 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.028s tapStarted=true
[2026-06-02 22:01:10] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-02 22:01:10] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 22:01:10] INFO Hotkey released: key=R-Alt mode=hold duration=7613ms recording=true combination=false
[2026-06-02 22:01:10] INFO Stopping audio device
[2026-06-02 22:01:10] INFO Recording stopped, 116800 samples captured
[2026-06-02 22:01:10] INFO Audio device stopped
[2026-06-02 22:01:10] INFO Audio device uninitialized
[2026-06-02 22:01:11] INFO Recognized: 你有了这个你就知道,其实你很多常规的问题不用去在网上找 AI。
[2026-06-02 22:01:12] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=703 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.027s tapStarted=true
[2026-06-02 22:01:12] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-02 22:01:12] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 22:01:12] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-02 22:01:12] INFO Hotkey action: start hold-to-talk after 209ms
[2026-06-02 22:01:12] INFO Recording started
[2026-06-02 22:01:12] INFO Recording started (16kHz/16-bit/mono)
[2026-06-02 22:01:15] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=704 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.023s tapStarted=true
[2026-06-02 22:01:15] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-02 22:01:15] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 22:01:15] INFO Hotkey released: key=R-Alt mode=hold duration=2549ms recording=true combination=false
[2026-06-02 22:01:15] INFO Stopping audio device
[2026-06-02 22:01:15] INFO Recording stopped, 36800 samples captured
[2026-06-02 22:01:15] INFO Audio device stopped
[2026-06-02 22:01:15] INFO Audio device uninitialized
[2026-06-02 22:01:15] INFO Recognized: 现在慢慢的人家很多都收费了。
[2026-06-02 22:01:22] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=705 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.008s tapStarted=true
[2026-06-02 22:01:22] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-02 22:01:22] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 22:01:22] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-02 22:01:22] INFO Hotkey action: start hold-to-talk after 209ms
[2026-06-02 22:01:22] INFO Recording started
[2026-06-02 22:01:22] INFO Recording started (16kHz/16-bit/mono)
[2026-06-02 22:01:25] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=706 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.015s tapStarted=true
[2026-06-02 22:01:25] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-02 22:01:25] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 22:01:25] INFO Hotkey released: key=R-Alt mode=hold duration=3570ms recording=true combination=false
[2026-06-02 22:01:25] INFO Recording stopped, 52800 samples captured
[2026-06-02 22:01:25] INFO Stopping audio device
[2026-06-02 22:01:26] INFO Audio device stopped
[2026-06-02 22:01:26] INFO Audio device uninitialized
[2026-06-02 22:01:26] INFO Recognized: 让他给我起名字,他就给我各种思路。
[2026-06-02 22:03:19] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=707 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.013s tapStarted=true
[2026-06-02 22:03:19] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-02 22:03:19] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 22:03:19] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-02 22:03:19] INFO Hotkey action: start hold-to-talk after 202ms
[2026-06-02 22:03:19] INFO Recording started
[2026-06-02 22:03:19] INFO Recording started (16kHz/16-bit/mono)
[2026-06-02 22:03:20] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=708 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.004s tapStarted=true
[2026-06-02 22:03:20] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-02 22:03:20] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 22:03:20] INFO Hotkey released: key=R-Alt mode=hold duration=1492ms recording=true combination=false
[2026-06-02 22:03:20] INFO Recording stopped, 19200 samples captured
[2026-06-02 22:03:20] INFO Stopping audio device
[2026-06-02 22:03:20] INFO Audio device stopped
[2026-06-02 22:03:20] INFO Audio device uninitialized
[2026-06-02 22:03:21] INFO Recognized: 我可以配合你。
[2026-06-02 22:03:22] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=709 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.014s tapStarted=true
[2026-06-02 22:03:22] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-02 22:03:22] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 22:03:22] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-02 22:03:23] INFO Hotkey action: start hold-to-talk after 210ms
[2026-06-02 22:03:23] INFO Recording started
[2026-06-02 22:03:23] INFO Recording started (16kHz/16-bit/mono)
[2026-06-02 22:03:33] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=710 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.006s tapStarted=true
[2026-06-02 22:03:33] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-02 22:03:33] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 22:03:33] INFO Hotkey released: key=R-Alt mode=hold duration=10445ms recording=true combination=false
[2026-06-02 22:03:33] INFO Stopping audio device
[2026-06-02 22:03:33] INFO Recording stopped, 163200 samples captured
[2026-06-02 22:03:33] INFO Audio device stopped
[2026-06-02 22:03:33] INFO Audio device uninitialized
[2026-06-02 22:03:33] INFO Recognized: 需要第一步,我先把我本地已经安装好的旧版的 private voice 先删除掉吗?
[2026-06-02 22:05:41] INFO Cleaning up...
[2026-06-02 22:05:41] INFO Cleanup complete
[2026-06-02 22:06:17] INFO PrivateVoice Input starting... version=2.1.19 build=20260602.2022 executable=/Applications/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input dataDir=/Users/ar/Library/Application Support/PrivateVoice Input
[2026-06-02 22:06:17] INFO Accessibility permission granted
[2026-06-02 22:06:17] INFO Keyboard event tap started; attempts=1 failures=0 disabled=0
[2026-06-02 22:06:17] INFO Application initialized, starting Wails
[2026-06-02 22:06:17] INFO Initializing ASR engine...
[2026-06-02 22:06:17] INFO Loading model sensevoice-zh from /Users/ar/Library/Application Support/PrivateVoice Input/models/sensevoice
[2026-06-02 22:06:17] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-02 22:06:17] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=false recording=false freetalk=false engineReady=false recordingHotkey=false
[2026-06-02 22:06:20] INFO Engine initialized: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-02 22:06:20] INFO ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-02 22:08:35] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=1 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.008s tapStarted=true
[2026-06-02 22:08:35] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-02 22:08:35] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 22:08:35] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-02 22:08:35] INFO Hotkey action: start hold-to-talk after 209ms
[2026-06-02 22:08:35] INFO Recording started
[2026-06-02 22:08:35] INFO Recording started (16kHz/16-bit/mono)
[2026-06-02 22:08:36] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=2 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.019s tapStarted=true
[2026-06-02 22:08:36] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-02 22:08:36] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 22:08:36] INFO Hotkey released: key=R-Alt mode=hold duration=1139ms recording=true combination=false
[2026-06-02 22:08:36] INFO Stopping audio device
[2026-06-02 22:08:36] INFO Recording stopped, 14400 samples captured
[2026-06-02 22:08:36] INFO Audio device stopped
[2026-06-02 22:08:36] INFO Audio device uninitialized
[2026-06-02 22:08:36] INFO Recognized: 说完了。
[2026-06-02 22:09:57] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=3 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.021s tapStarted=true
[2026-06-02 22:09:57] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-02 22:09:57] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 22:09:57] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-02 22:09:57] INFO Hotkey action: start hold-to-talk after 209ms
[2026-06-02 22:09:57] INFO Recording started
[2026-06-02 22:09:57] INFO Recording started (16kHz/16-bit/mono)
[2026-06-02 22:09:58] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=4 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.001s tapStarted=true
[2026-06-02 22:09:58] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-02 22:09:58] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 22:09:58] INFO Hotkey released: key=R-Alt mode=hold duration=1408ms recording=true combination=false
[2026-06-02 22:09:58] INFO Recording stopped, 19200 samples captured
[2026-06-02 22:09:58] INFO Stopping audio device
[2026-06-02 22:09:58] INFO Audio device stopped
[2026-06-02 22:09:58] INFO Audio device uninitialized
[2026-06-02 22:09:58] INFO Recognized: 说完了。
[2026-06-02 22:11:54] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=5 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.017s tapStarted=true
[2026-06-02 22:11:54] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-02 22:11:54] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 22:11:54] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-02 22:11:54] INFO Hotkey action: start hold-to-talk after 180ms
[2026-06-02 22:11:54] INFO Recording started
[2026-06-02 22:11:54] INFO Recording started (16kHz/16-bit/mono)
[2026-06-02 22:12:01] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=6 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.003s tapStarted=true
[2026-06-02 22:12:01] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-02 22:12:01] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 22:12:01] INFO Hotkey released: key=R-Alt mode=hold duration=7410ms recording=true combination=false
[2026-06-02 22:12:01] INFO Stopping audio device
[2026-06-02 22:12:01] INFO Recording stopped, 115200 samples captured
[2026-06-02 22:12:01] INFO Audio device stopped
[2026-06-02 22:12:01] INFO Audio device uninitialized
[2026-06-02 22:12:02] INFO Recognized: 你如果发现他有些个别词语识别错了,你就可以把这个表导出编辑一次。
[2026-06-02 22:12:03] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=7 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.014s tapStarted=true
[2026-06-02 22:12:03] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-02 22:12:03] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 22:12:03] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-02 22:12:03] INFO Hotkey action: start hold-to-talk after 180ms
[2026-06-02 22:12:03] INFO Recording started
[2026-06-02 22:12:03] INFO Recording started (16kHz/16-bit/mono)
[2026-06-02 22:12:07] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=8 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.007s tapStarted=true
[2026-06-02 22:12:07] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-02 22:12:07] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 22:12:07] INFO Hotkey released: key=R-Alt mode=hold duration=3629ms recording=true combination=false
[2026-06-02 22:12:07] INFO Stopping audio device
[2026-06-02 22:12:07] INFO Recording stopped, 55200 samples captured
[2026-06-02 22:12:07] INFO Audio device stopped
[2026-06-02 22:12:07] INFO Audio device uninitialized
[2026-06-02 22:12:07] INFO Recognized: 然后再导入回来以后就不会错了。
[2026-06-02 22:12:09] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=9 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.028s tapStarted=true
[2026-06-02 22:12:09] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-02 22:12:09] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 22:12:09] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-02 22:12:09] INFO Hotkey action: start hold-to-talk after 180ms
[2026-06-02 22:12:09] INFO Recording started
[2026-06-02 22:12:09] INFO Recording started (16kHz/16-bit/mono)
[2026-06-02 22:12:15] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=10 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.020s tapStarted=true
[2026-06-02 22:12:15] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-02 22:12:15] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 22:12:15] INFO Hotkey released: key=R-Alt mode=hold duration=6120ms recording=true combination=false
[2026-06-02 22:12:15] INFO Stopping audio device
[2026-06-02 22:12:15] INFO Recording stopped, 94400 samples captured
[2026-06-02 22:12:15] INFO Audio device stopped
[2026-06-02 22:12:15] INFO Audio device uninitialized
[2026-06-02 22:12:15] INFO Recognized: 这样持续个一周,这个输入法就非常非常好用了,就完全适应你。
[2026-06-02 22:12:19] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=11 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.002s tapStarted=true
[2026-06-02 22:12:19] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-02 22:12:19] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 22:12:19] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-02 22:12:19] INFO Hotkey action: start hold-to-talk after 180ms
[2026-06-02 22:12:19] INFO Recording started
[2026-06-02 22:12:19] INFO Recording started (16kHz/16-bit/mono)
[2026-06-02 22:12:21] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=12 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.026s tapStarted=true
[2026-06-02 22:12:21] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-02 22:12:21] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 22:12:21] INFO Hotkey released: key=R-Alt mode=hold duration=2340ms recording=true combination=false
[2026-06-02 22:12:21] INFO Stopping audio device
[2026-06-02 22:12:21] INFO Recording stopped, 34400 samples captured
[2026-06-02 22:12:21] INFO Audio device stopped
[2026-06-02 22:12:21] INFO Audio device uninitialized
[2026-06-02 22:12:21] INFO Recognized: 你可以一天来编辑一次。
[2026-06-02 22:12:35] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=13 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.009s tapStarted=true
[2026-06-02 22:12:35] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-02 22:12:35] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 22:12:35] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-02 22:12:35] INFO Hotkey action: start hold-to-talk after 209ms
[2026-06-02 22:12:35] INFO Recording started
[2026-06-02 22:12:35] INFO Recording started (16kHz/16-bit/mono)
[2026-06-02 22:12:37] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=14 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.017s tapStarted=true
[2026-06-02 22:12:37] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-02 22:12:37] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 22:12:37] INFO Hotkey released: key=R-Alt mode=hold duration=2459ms recording=true combination=false
[2026-06-02 22:12:37] INFO Stopping audio device
[2026-06-02 22:12:37] INFO Recording stopped, 35200 samples captured
[2026-06-02 22:12:37] INFO Audio device stopped
[2026-06-02 22:12:37] INFO Audio device uninitialized
[2026-06-02 22:12:38] INFO Recognized: 临时想改个词在这来改。
02-P-NBL/round-1/logs/qa-runtime/network-sample-20260602.log
New file
@@ -0,0 +1,31 @@
PID=24890
--- sample 1 22:09:47
--- sample 2 22:09:48
--- sample 3 22:09:49
--- sample 4 22:09:50
--- sample 5 22:09:51
--- sample 6 22:09:52
--- sample 7 22:09:53
--- sample 8 22:09:54
--- sample 9 22:09:55
--- sample 10 22:09:57
--- sample 11 22:09:58
--- sample 12 22:09:59
--- sample 13 22:10:00
--- sample 14 22:10:01
--- sample 15 22:10:02
--- sample 16 22:10:03
--- sample 17 22:10:04
--- sample 18 22:10:05
--- sample 19 22:10:06
--- sample 20 22:10:07
--- sample 21 22:10:08
--- sample 22 22:10:09
--- sample 23 22:10:10
--- sample 24 22:10:11
--- sample 25 22:10:12
--- sample 26 22:10:13
--- sample 27 22:10:14
--- sample 28 22:10:15
--- sample 29 22:10:16
--- sample 30 22:10:17
02-P-NBL/round-1/logs/qa-runtime/new-user-clean-install-20260602.231851.launch.log
New file
@@ -0,0 +1,55 @@
captured_at=2026-06-02 23:19:37 +0800
pid=44234
app_data_exists=yes
app_data_size=228M    /Users/ar/Library/Application Support/PrivateVoice Input
file_tree
app.log
config.json
models/sensevoice-zh/model.int8.onnx
models/sensevoice-zh/tokens.txt
models/state.json
userdict.json
config
{
  "HotkeyVK": 165,
  "HotkeyMode": "hold",
  "AutoHide": true,
  "SoundFeedback": true,
  "HideDockIcon": true,
  "CopyToClipboard": true,
  "SelectedModelID": "sensevoice-zh",
  "ModelDownloadUrl": "http://www.maikami.com/voicesnap/sensevoice.zip",
  "FallbackModelDownloadUrl": "https://modelscope.cn/models/sherpa-onnx/sherpa-onnx-sense-voice-zh-en-ja-ko-yue/resolve/master/sherpa-onnx-sense-voice-zh-en-ja-ko-yue-int8-2024-07-17.tar.bz2"
}
userdict
{
  "version": null,
  "replacementCount": 0,
  "entries": null
}
history
model_files
models/sensevoice-zh/model.int8.onnx
models/sensevoice-zh/tokens.txt
models/state.json
process
44234 Tue Jun  2 23:19:19 2026     /Applications/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input
network_sockets
COMMAND     PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
PrivateVo 44234   ar   12u  IPv4 0xad0ca3d0f8b91a07      0t0  TCP 198.18.0.1:52287->198.18.10.233:80 (ESTABLISHED)
app_log_tail
[2026-06-02 23:19:19] INFO PrivateVoice Input starting... version=2.1.19 build=20260602.2022 executable=/Applications/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input dataDir=/Users/ar/Library/Application Support/PrivateVoice Input
[2026-06-02 23:19:19] INFO Accessibility permission granted
[2026-06-02 23:19:19] INFO Keyboard event tap started; attempts=1 failures=0 disabled=0
[2026-06-02 23:19:19] INFO Application initialized, starting Wails
[2026-06-02 23:19:19] INFO Initializing ASR engine...
[2026-06-02 23:19:19] ERROR Engine initialization failed: model sensevoice-zh is not usable: not_installed missing=[/Users/ar/Library/Application Support/PrivateVoice Input/models/sensevoice] problems=[]
[2026-06-02 23:19:19] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-02 23:19:19] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=false recording=false freetalk=false engineReady=false recordingHotkey=false
[2026-06-02 23:19:19] INFO Downloading model from URL 1: http://www.maikami.com/voicesnap/sensevoice.zip
[2026-06-02 23:19:27] INFO Extracting model archive...
[2026-06-02 23:19:27] INFO Model download and extraction complete
[2026-06-02 23:19:27] INFO Initializing ASR engine...
[2026-06-02 23:19:27] INFO Loading model sensevoice-zh from /Users/ar/Library/Application Support/PrivateVoice Input/models/sensevoice-zh
[2026-06-02 23:19:30] INFO Engine initialized: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-02 23:19:30] INFO ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)
02-P-NBL/round-1/logs/qa-runtime/new-user-clean-install-20260602.231851.recognition.log
New file
@@ -0,0 +1,49 @@
recognition_poll_started=2026-06-02 23:20:16 +0800
[2026-06-02 23:20:16 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:20:18 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:20:20 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:20:22 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:20:24 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:20:27 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:20:29 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:20:31 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:20:33 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:20:35 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:20:37 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:20:39 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:20:41 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:20:43 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:20:45 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:20:47 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:20:49 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:20:51 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:20:53 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:20:55 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:20:57 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:20:59 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:21:01 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:21:03 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:21:05 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:21:07 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:21:09 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:21:11 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:21:13 +0800] history=[no_history] last_recognized=[]
[2026-06-02 23:21:15 +0800] history=[no_history] last_recognized=[]
recognition_poll_finished=2026-06-02 23:21:17 +0800
latest_history
app_log_tail
[2026-06-02 23:19:19] INFO PrivateVoice Input starting... version=2.1.19 build=20260602.2022 executable=/Applications/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input dataDir=/Users/ar/Library/Application Support/PrivateVoice Input
[2026-06-02 23:19:19] INFO Accessibility permission granted
[2026-06-02 23:19:19] INFO Keyboard event tap started; attempts=1 failures=0 disabled=0
[2026-06-02 23:19:19] INFO Application initialized, starting Wails
[2026-06-02 23:19:19] INFO Initializing ASR engine...
[2026-06-02 23:19:19] ERROR Engine initialization failed: model sensevoice-zh is not usable: not_installed missing=[/Users/ar/Library/Application Support/PrivateVoice Input/models/sensevoice] problems=[]
[2026-06-02 23:19:19] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-02 23:19:19] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=false recording=false freetalk=false engineReady=false recordingHotkey=false
[2026-06-02 23:19:19] INFO Downloading model from URL 1: http://www.maikami.com/voicesnap/sensevoice.zip
[2026-06-02 23:19:27] INFO Extracting model archive...
[2026-06-02 23:19:27] INFO Model download and extraction complete
[2026-06-02 23:19:27] INFO Initializing ASR engine...
[2026-06-02 23:19:27] INFO Loading model sensevoice-zh from /Users/ar/Library/Application Support/PrivateVoice Input/models/sensevoice-zh
[2026-06-02 23:19:30] INFO Engine initialized: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-02 23:19:30] INFO ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)
02-P-NBL/round-1/logs/qa-runtime/new-user-clean-install-20260602.231851.restore.log
New file
@@ -0,0 +1,72 @@
restore_started=2026-06-02 23:21:47 +0800
current_pid=44234
new_user_size_before_restore=228M    /Users/ar/Library/Application Support/PrivateVoice Input
restore_finished=2026-06-02 23:22:04 +0800
restored_pid=44895
restored_size=235M    /Users/ar/Library/Application Support/PrivateVoice Input
restored_history=1667 | 为什么他说能够支持 50 加的语言?我记得我们的 sense voice 只能支持好像四五种语言。
restored_replacements=149
restored_model_files
models/sensevoice/model.int8.onnx
models/sensevoice/tokens.txt
restored_log_tail
[2026-06-02 23:00:56] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=5 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.009s tapStarted=true
[2026-06-02 23:00:56] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-02 23:00:56] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 23:00:56] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-02 23:00:56] INFO Hotkey action: start hold-to-talk after 209ms
[2026-06-02 23:00:56] INFO Recording started
[2026-06-02 23:00:56] INFO Recording started (16kHz/16-bit/mono)
[2026-06-02 23:00:59] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=6 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.019s tapStarted=true
[2026-06-02 23:00:59] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-02 23:00:59] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 23:00:59] INFO Hotkey released: key=R-Alt mode=hold duration=3569ms recording=true combination=false
[2026-06-02 23:00:59] INFO Recording stopped, 53600 samples captured
[2026-06-02 23:00:59] INFO Stopping audio device
[2026-06-02 23:00:59] INFO Audio device stopped
[2026-06-02 23:00:59] INFO Audio device uninitialized
[2026-06-02 23:00:59] INFO Recognized: 这篇文章所说的 s voice。
[2026-06-02 23:01:08] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=7 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.007s tapStarted=true
[2026-06-02 23:01:08] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-02 23:01:08] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 23:01:08] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-02 23:01:09] INFO Hotkey action: start hold-to-talk after 209ms
[2026-06-02 23:01:09] INFO Recording started
[2026-06-02 23:01:09] INFO Recording started (16kHz/16-bit/mono)
[2026-06-02 23:01:15] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=8 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.015s tapStarted=true
[2026-06-02 23:01:15] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-02 23:01:15] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 23:01:15] INFO Hotkey released: key=R-Alt mode=hold duration=6599ms recording=true combination=false
[2026-06-02 23:01:15] INFO Stopping audio device
[2026-06-02 23:01:15] INFO Recording stopped, 101600 samples captured
[2026-06-02 23:01:15] INFO Audio device stopped
[2026-06-02 23:01:15] INFO Audio device uninitialized
[2026-06-02 23:01:15] INFO Recognized: 这篇文章所说的放 R 和我们现在用的 s word 是什么关系?
[2026-06-02 23:01:34] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=9 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.027s tapStarted=true
[2026-06-02 23:01:34] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-02 23:01:34] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 23:01:34] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-02 23:01:34] INFO Hotkey action: start hold-to-talk after 209ms
[2026-06-02 23:01:34] INFO Recording started
[2026-06-02 23:01:34] INFO Recording started (16kHz/16-bit/mono)
[2026-06-02 23:01:46] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=10 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.023s tapStarted=true
[2026-06-02 23:01:46] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-02 23:01:46] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 23:01:46] INFO Hotkey released: key=R-Alt mode=hold duration=12180ms recording=true combination=false
[2026-06-02 23:01:46] INFO Stopping audio device
[2026-06-02 23:01:46] INFO Recording stopped, 191200 samples captured
[2026-06-02 23:01:46] INFO Audio device stopped
[2026-06-02 23:01:46] INFO Audio device uninitialized
[2026-06-02 23:01:46] INFO Recognized: 为什么他说能够支持 50 加的语言?我记得我们的 sense voice 只能支持好像四五种语言。
[2026-06-02 23:18:52] INFO Cleaning up...
[2026-06-02 23:18:52] INFO Cleanup complete
[2026-06-02 23:21:52] INFO PrivateVoice Input starting... version=2.1.19 build=20260602.2022 executable=/Applications/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input dataDir=/Users/ar/Library/Application Support/PrivateVoice Input
[2026-06-02 23:21:52] INFO Accessibility permission granted
[2026-06-02 23:21:52] INFO Keyboard event tap started; attempts=1 failures=0 disabled=0
[2026-06-02 23:21:52] INFO Application initialized, starting Wails
[2026-06-02 23:21:52] INFO Initializing ASR engine...
[2026-06-02 23:21:52] INFO Loading model sensevoice-zh from /Users/ar/Library/Application Support/PrivateVoice Input/models/sensevoice
[2026-06-02 23:21:52] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-02 23:21:52] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=false recording=false freetalk=false engineReady=false recordingHotkey=false
[2026-06-02 23:21:55] INFO Engine initialized: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-02 23:21:55] INFO ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)
02-P-NBL/round-1/logs/qa-runtime/new-user-clean-install-20260602.231851.setup.log
New file
@@ -0,0 +1,5 @@
run_id=20260602.231851
backup_dir=/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/QA-backups/pre-new-user-clean-install-20260602.231851
hold_dir=/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/QA-backups/original-userdata-held-for-new-user-20260602.231851
app_data_exists_after_move=no
held_size=235M    /Users/ar/Projects/VoiceSnap-2.1.1-QA-build/QA-backups/original-userdata-held-for-new-user-20260602.231851/PrivateVoice Input
02-P-NBL/round-1/logs/qa-runtime/new-user-recognition-20260603.005122.launch.log
New file
@@ -0,0 +1,63 @@
launch_poll_started=2026-06-03 00:51:42 +0800
[2026-06-03 00:51:42 +0800] pid=[55832 ] ready=[]
[2026-06-03 00:51:44 +0800] pid=[55832 ] ready=[]
[2026-06-03 00:51:42] ERROR Engine initialization failed: model sensevoice-zh is not usable: not_installed missing=[/Users/ar/Library/Application Support/PrivateVoice Input/models/sensevoice] problems=[]
[2026-06-03 00:51:43] INFO Downloading model from URL 1: http://www.maikami.com/voicesnap/sensevoice.zip
[2026-06-03 00:51:46 +0800] pid=[55832 ] ready=[]
[2026-06-03 00:51:42] ERROR Engine initialization failed: model sensevoice-zh is not usable: not_installed missing=[/Users/ar/Library/Application Support/PrivateVoice Input/models/sensevoice] problems=[]
[2026-06-03 00:51:43] INFO Downloading model from URL 1: http://www.maikami.com/voicesnap/sensevoice.zip
[2026-06-03 00:51:48 +0800] pid=[55832 ] ready=[]
[2026-06-03 00:51:42] ERROR Engine initialization failed: model sensevoice-zh is not usable: not_installed missing=[/Users/ar/Library/Application Support/PrivateVoice Input/models/sensevoice] problems=[]
[2026-06-03 00:51:43] INFO Downloading model from URL 1: http://www.maikami.com/voicesnap/sensevoice.zip
[2026-06-03 00:51:50 +0800] pid=[55832 ] ready=[]
[2026-06-03 00:51:42] ERROR Engine initialization failed: model sensevoice-zh is not usable: not_installed missing=[/Users/ar/Library/Application Support/PrivateVoice Input/models/sensevoice] problems=[]
[2026-06-03 00:51:43] INFO Downloading model from URL 1: http://www.maikami.com/voicesnap/sensevoice.zip
[2026-06-03 00:51:50] INFO Extracting model archive...
[2026-06-03 00:51:52 +0800] pid=[55832 ] ready=[]
[2026-06-03 00:51:42] ERROR Engine initialization failed: model sensevoice-zh is not usable: not_installed missing=[/Users/ar/Library/Application Support/PrivateVoice Input/models/sensevoice] problems=[]
[2026-06-03 00:51:43] INFO Downloading model from URL 1: http://www.maikami.com/voicesnap/sensevoice.zip
[2026-06-03 00:51:50] INFO Extracting model archive...
[2026-06-03 00:51:51] INFO Model download and extraction complete
[2026-06-03 00:51:51] INFO Loading model sensevoice-zh from /Users/ar/Library/Application Support/PrivateVoice Input/models/sensevoice-zh
[2026-06-03 00:51:54 +0800] pid=[55832 ] ready=[[2026-06-03 00:51:53] INFO ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)]
[2026-06-03 00:51:42] ERROR Engine initialization failed: model sensevoice-zh is not usable: not_installed missing=[/Users/ar/Library/Application Support/PrivateVoice Input/models/sensevoice] problems=[]
[2026-06-03 00:51:43] INFO Downloading model from URL 1: http://www.maikami.com/voicesnap/sensevoice.zip
[2026-06-03 00:51:50] INFO Extracting model archive...
[2026-06-03 00:51:51] INFO Model download and extraction complete
[2026-06-03 00:51:51] INFO Loading model sensevoice-zh from /Users/ar/Library/Application Support/PrivateVoice Input/models/sensevoice-zh
launch_poll_finished=2026-06-03 00:51:54 +0800
new_user_tree
app.log
config.json
models/sensevoice-zh/model.int8.onnx
models/sensevoice-zh/tokens.txt
models/state.json
userdict.json
new_user_config
{
  "HotkeyVK": 165,
  "HotkeyMode": "hold",
  "AutoHide": true,
  "SoundFeedback": true,
  "HideDockIcon": true,
  "CopyToClipboard": true,
  "SelectedModelID": "sensevoice-zh",
  "ModelDownloadUrl": "http://www.maikami.com/voicesnap/sensevoice.zip",
  "FallbackModelDownloadUrl": "https://modelscope.cn/models/sherpa-onnx/sherpa-onnx-sense-voice-zh-en-ja-ko-yue/resolve/master/sherpa-onnx-sense-voice-zh-en-ja-ko-yue-int8-2024-07-17.tar.bz2"
}
app_log_tail
[2026-06-03 00:51:42] INFO PrivateVoice Input starting... version=2.1.19 build=20260602.2022 executable=/Applications/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input dataDir=/Users/ar/Library/Application Support/PrivateVoice Input
[2026-06-03 00:51:42] INFO Accessibility permission granted
[2026-06-03 00:51:42] INFO Keyboard event tap started; attempts=1 failures=0 disabled=0
[2026-06-03 00:51:42] INFO Application initialized, starting Wails
[2026-06-03 00:51:42] INFO Initializing ASR engine...
[2026-06-03 00:51:42] ERROR Engine initialization failed: model sensevoice-zh is not usable: not_installed missing=[/Users/ar/Library/Application Support/PrivateVoice Input/models/sensevoice] problems=[]
[2026-06-03 00:51:42] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-03 00:51:42] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=false recording=false freetalk=false engineReady=false recordingHotkey=false
[2026-06-03 00:51:43] INFO Downloading model from URL 1: http://www.maikami.com/voicesnap/sensevoice.zip
[2026-06-03 00:51:50] INFO Extracting model archive...
[2026-06-03 00:51:51] INFO Model download and extraction complete
[2026-06-03 00:51:51] INFO Initializing ASR engine...
[2026-06-03 00:51:51] INFO Loading model sensevoice-zh from /Users/ar/Library/Application Support/PrivateVoice Input/models/sensevoice-zh
[2026-06-03 00:51:53] INFO Engine initialized: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 00:51:53] INFO ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)
02-P-NBL/round-1/logs/qa-runtime/new-user-recognition-20260603.005122.recognition.log
New file
@@ -0,0 +1,191 @@
recognition_poll_started=2026-06-03 00:52:08 +0800
[2026-06-03 00:52:08 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:52:10 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:52:13 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:52:15 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:52:17 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:52:19 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:52:21 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:52:23 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:52:25 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:52:27 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:52:29 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:52:31 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:52:33 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:52:35 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:52:37 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:52:39 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:52:41 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:52:43 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:52:45 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:52:47 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:52:49 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:52:51 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:52:53 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:52:55 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:52:57 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:52:59 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:01 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:03 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:05 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:07 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:10 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:12 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:14 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:16 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:18 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:20 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:22 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:24 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:26 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:28 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:30 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:32 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:34 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:36 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:38 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:40 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:42 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:44 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:46 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:48 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:50 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:52 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:54 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:56 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:53:58 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:54:00 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:54:02 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:54:04 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:54:06 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:54:09 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:54:11 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:54:13 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:54:15 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:54:17 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:54:19 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:54:21 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:54:23 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:54:25 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:54:27 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:54:29 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:54:31 +0800] pid=[55832 ] history=[no_history] last_recognized=[]
[2026-06-03 00:54:33 +0800] pid=[55832 ] history=[1 | 我上次在 getthub 上,然后把我的软件的 help 文档都上传到这里了。我现在需要更新一下。] last_recognized=[[2026-06-03 00:54:33] INFO Recognized: 我上次在 getthub 上,然后把我的软件的 help 文档都上传到这里了。我现在需要更新一下。]
[2026-06-03 00:54:35 +0800] pid=[55832 ] history=[1 | 我上次在 getthub 上,然后把我的软件的 help 文档都上传到这里了。我现在需要更新一下。] last_recognized=[[2026-06-03 00:54:33] INFO Recognized: 我上次在 getthub 上,然后把我的软件的 help 文档都上传到这里了。我现在需要更新一下。]
[2026-06-03 00:54:37 +0800] pid=[55832 ] history=[2 | 我应该怎么操作呢?] last_recognized=[[2026-06-03 00:54:36] INFO Recognized: 我应该怎么操作呢?]
[2026-06-03 00:54:39 +0800] pid=[55832 ] history=[2 | 我应该怎么操作呢?] last_recognized=[[2026-06-03 00:54:36] INFO Recognized: 我应该怎么操作呢?]
[2026-06-03 00:54:41 +0800] pid=[55832 ] history=[2 | 我应该怎么操作呢?] last_recognized=[[2026-06-03 00:54:36] INFO Recognized: 我应该怎么操作呢?]
[2026-06-03 00:54:43 +0800] pid=[55832 ] history=[2 | 我应该怎么操作呢?] last_recognized=[[2026-06-03 00:54:36] INFO Recognized: 我应该怎么操作呢?]
[2026-06-03 00:54:45 +0800] pid=[55832 ] history=[2 | 我应该怎么操作呢?] last_recognized=[[2026-06-03 00:54:36] INFO Recognized: 我应该怎么操作呢?]
[2026-06-03 00:54:47 +0800] pid=[55832 ] history=[3 | 另外你建不建议我下一个 github 的 DMG 在本地安装一下,用客户端操作。] last_recognized=[[2026-06-03 00:54:45] INFO Recognized: 另外你建不建议我下一个 github 的 DMG 在本地安装一下,用客户端操作。]
[2026-06-03 00:54:49 +0800] pid=[55832 ] history=[3 | 另外你建不建议我下一个 github 的 DMG 在本地安装一下,用客户端操作。] last_recognized=[[2026-06-03 00:54:45] INFO Recognized: 另外你建不建议我下一个 github 的 DMG 在本地安装一下,用客户端操作。]
[2026-06-03 00:54:51 +0800] pid=[55832 ] history=[3 | 另外你建不建议我下一个 github 的 DMG 在本地安装一下,用客户端操作。] last_recognized=[[2026-06-03 00:54:45] INFO Recognized: 另外你建不建议我下一个 github 的 DMG 在本地安装一下,用客户端操作。]
[2026-06-03 00:54:53 +0800] pid=[55832 ] history=[3 | 另外你建不建议我下一个 github 的 DMG 在本地安装一下,用客户端操作。] last_recognized=[[2026-06-03 00:54:45] INFO Recognized: 另外你建不建议我下一个 github 的 DMG 在本地安装一下,用客户端操作。]
[2026-06-03 00:54:55 +0800] pid=[55832 ] history=[3 | 另外你建不建议我下一个 github 的 DMG 在本地安装一下,用客户端操作。] last_recognized=[[2026-06-03 00:54:45] INFO Recognized: 另外你建不建议我下一个 github 的 DMG 在本地安装一下,用客户端操作。]
[2026-06-03 00:54:57 +0800] pid=[55832 ] history=[3 | 另外你建不建议我下一个 github 的 DMG 在本地安装一下,用客户端操作。] last_recognized=[[2026-06-03 00:54:45] INFO Recognized: 另外你建不建议我下一个 github 的 DMG 在本地安装一下,用客户端操作。]
[2026-06-03 00:54:59 +0800] pid=[55832 ] history=[3 | 另外你建不建议我下一个 github 的 DMG 在本地安装一下,用客户端操作。] last_recognized=[[2026-06-03 00:54:45] INFO Recognized: 另外你建不建议我下一个 github 的 DMG 在本地安装一下,用客户端操作。]
[2026-06-03 00:55:01 +0800] pid=[55832 ] history=[3 | 另外你建不建议我下一个 github 的 DMG 在本地安装一下,用客户端操作。] last_recognized=[[2026-06-03 00:54:45] INFO Recognized: 另外你建不建议我下一个 github 的 DMG 在本地安装一下,用客户端操作。]
[2026-06-03 00:55:03 +0800] pid=[55832 ] history=[3 | 另外你建不建议我下一个 github 的 DMG 在本地安装一下,用客户端操作。] last_recognized=[[2026-06-03 00:54:45] INFO Recognized: 另外你建不建议我下一个 github 的 DMG 在本地安装一下,用客户端操作。]
[2026-06-03 00:55:05 +0800] pid=[55832 ] history=[4 | 我只是想覆盖一下已经上传的文件,然后文件名和下载地址都不要变。] last_recognized=[[2026-06-03 00:55:04] INFO Recognized: 我只是想覆盖一下已经上传的文件,然后文件名和下载地址都不要变。]
[2026-06-03 00:55:07 +0800] pid=[55832 ] history=[4 | 我只是想覆盖一下已经上传的文件,然后文件名和下载地址都不要变。] last_recognized=[[2026-06-03 00:55:04] INFO Recognized: 我只是想覆盖一下已经上传的文件,然后文件名和下载地址都不要变。]
[2026-06-03 00:55:10 +0800] pid=[55832 ] history=[4 | 我只是想覆盖一下已经上传的文件,然后文件名和下载地址都不要变。] last_recognized=[[2026-06-03 00:55:04] INFO Recognized: 我只是想覆盖一下已经上传的文件,然后文件名和下载地址都不要变。]
recognition_poll_finished=2026-06-03 00:55:12 +0800
latest_history
[
  {
    "text": "我只是想覆盖一下已经上传的文件,然后文件名和下载地址都不要变。",
    "timestamp": 1780419304742
  },
  {
    "text": "另外你建不建议我下一个 github 的 DMG 在本地安装一下,用客户端操作。",
    "timestamp": 1780419285808
  },
  {
    "text": "我应该怎么操作呢?",
    "timestamp": 1780419276832
  },
  {
    "text": "我上次在 getthub 上,然后把我的软件的 help 文档都上传到这里了。我现在需要更新一下。",
    "timestamp": 1780419273275
  }
]
app_log_tail
[2026-06-03 00:51:42] INFO PrivateVoice Input starting... version=2.1.19 build=20260602.2022 executable=/Applications/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input dataDir=/Users/ar/Library/Application Support/PrivateVoice Input
[2026-06-03 00:51:42] INFO Accessibility permission granted
[2026-06-03 00:51:42] INFO Keyboard event tap started; attempts=1 failures=0 disabled=0
[2026-06-03 00:51:42] INFO Application initialized, starting Wails
[2026-06-03 00:51:42] INFO Initializing ASR engine...
[2026-06-03 00:51:42] ERROR Engine initialization failed: model sensevoice-zh is not usable: not_installed missing=[/Users/ar/Library/Application Support/PrivateVoice Input/models/sensevoice] problems=[]
[2026-06-03 00:51:42] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-03 00:51:42] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=false recording=false freetalk=false engineReady=false recordingHotkey=false
[2026-06-03 00:51:43] INFO Downloading model from URL 1: http://www.maikami.com/voicesnap/sensevoice.zip
[2026-06-03 00:51:50] INFO Extracting model archive...
[2026-06-03 00:51:51] INFO Model download and extraction complete
[2026-06-03 00:51:51] INFO Initializing ASR engine...
[2026-06-03 00:51:51] INFO Loading model sensevoice-zh from /Users/ar/Library/Application Support/PrivateVoice Input/models/sensevoice-zh
[2026-06-03 00:51:53] INFO Engine initialized: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 00:51:53] INFO ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 00:54:23] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=1 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.007s tapStarted=true
[2026-06-03 00:54:23] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-03 00:54:23] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-03 00:54:23] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-03 00:54:23] INFO Hotkey action: start hold-to-talk after 207ms
[2026-06-03 00:54:23] INFO Recording started
[2026-06-03 00:54:23] INFO Recording started (16kHz/16-bit/mono)
[2026-06-03 00:54:33] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=2 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.016s tapStarted=true
[2026-06-03 00:54:33] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-03 00:54:33] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-03 00:54:33] INFO Hotkey released: key=R-Alt mode=hold duration=9447ms recording=true combination=false
[2026-06-03 00:54:33] INFO Stopping audio device
[2026-06-03 00:54:33] INFO Recording stopped, 147200 samples captured
[2026-06-03 00:54:33] INFO Audio device stopped
[2026-06-03 00:54:33] INFO Audio device uninitialized
[2026-06-03 00:54:33] INFO Recognized: 我上次在 getthub 上,然后把我的软件的 help 文档都上传到这里了。我现在需要更新一下。
[2026-06-03 00:54:35] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=3 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.005s tapStarted=true
[2026-06-03 00:54:35] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-03 00:54:35] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-03 00:54:35] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-03 00:54:35] INFO Hotkey action: start hold-to-talk after 180ms
[2026-06-03 00:54:35] INFO Recording started
[2026-06-03 00:54:35] INFO Recording started (16kHz/16-bit/mono)
[2026-06-03 00:54:36] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=4 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.016s tapStarted=true
[2026-06-03 00:54:36] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-03 00:54:36] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-03 00:54:36] INFO Hotkey released: key=R-Alt mode=hold duration=1739ms recording=true combination=false
[2026-06-03 00:54:36] INFO Stopping audio device
[2026-06-03 00:54:36] INFO Recording stopped, 24800 samples captured
[2026-06-03 00:54:36] INFO Audio device stopped
[2026-06-03 00:54:36] INFO Audio device uninitialized
[2026-06-03 00:54:36] INFO Recognized: 我应该怎么操作呢?
[2026-06-03 00:54:38] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=5 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.004s tapStarted=true
[2026-06-03 00:54:38] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-03 00:54:38] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-03 00:54:38] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-03 00:54:38] INFO Hotkey action: start hold-to-talk after 209ms
[2026-06-03 00:54:38] INFO Recording started
[2026-06-03 00:54:38] INFO Recording started (16kHz/16-bit/mono)
[2026-06-03 00:54:45] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=6 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.018s tapStarted=true
[2026-06-03 00:54:45] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-03 00:54:45] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-03 00:54:45] INFO Hotkey released: key=R-Alt mode=hold duration=7529ms recording=true combination=false
[2026-06-03 00:54:45] INFO Stopping audio device
[2026-06-03 00:54:45] INFO Recording stopped, 116800 samples captured
[2026-06-03 00:54:45] INFO Audio device stopped
[2026-06-03 00:54:45] INFO Audio device uninitialized
[2026-06-03 00:54:45] INFO Recognized: 另外你建不建议我下一个 github 的 DMG 在本地安装一下,用客户端操作。
[2026-06-03 00:54:58] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=7 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.014s tapStarted=true
[2026-06-03 00:54:58] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-03 00:54:58] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-03 00:54:58] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-03 00:54:59] INFO Hotkey action: start hold-to-talk after 180ms
[2026-06-03 00:54:59] INFO Recording started
[2026-06-03 00:54:59] INFO Recording started (16kHz/16-bit/mono)
[2026-06-03 00:55:04] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=8 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.004s tapStarted=true
[2026-06-03 00:55:04] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-03 00:55:04] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-03 00:55:04] INFO Hotkey released: key=R-Alt mode=hold duration=5700ms recording=true combination=false
[2026-06-03 00:55:04] INFO Stopping audio device
[2026-06-03 00:55:04] INFO Recording stopped, 88000 samples captured
[2026-06-03 00:55:04] INFO Audio device stopped
[2026-06-03 00:55:04] INFO Audio device uninitialized
[2026-06-03 00:55:04] INFO Recognized: 我只是想覆盖一下已经上传的文件,然后文件名和下载地址都不要变。
02-P-NBL/round-1/logs/qa-runtime/new-user-recognition-20260603.005122.restore.log
New file
@@ -0,0 +1,93 @@
restore_started=2026-06-03 00:55:35 +0800
current_pid=55832
new_user_size_before_restore=228M    /Users/ar/Library/Application Support/PrivateVoice Input
new_user_history_before_restore=4 | 我只是想覆盖一下已经上传的文件,然后文件名和下载地址都不要变。
restore_finished=2026-06-03 00:55:54 +0800
restored_pid=59134
restored_size=235M    /Users/ar/Library/Application Support/PrivateVoice Input
restored_history=1676 | 这是本地目录。
restored_replacements=149
restored_model_files
models/sensevoice/model.int8.onnx
models/sensevoice/tokens.txt
restored_log_tail
[2026-06-03 00:49:16] INFO Recording stopped, 69600 samples captured
[2026-06-03 00:49:16] INFO Audio device stopped
[2026-06-03 00:49:16] INFO Audio device uninitialized
[2026-06-03 00:49:16] INFO Recognized: 你告诉我一下你大概要怎么搞,把你的思路跟我说一下。
[2026-06-03 00:49:58] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=11 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.011s tapStarted=true
[2026-06-03 00:49:58] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-03 00:49:58] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-03 00:49:58] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-03 00:49:58] INFO Hotkey action: start hold-to-talk after 208ms
[2026-06-03 00:49:58] INFO Recording started
[2026-06-03 00:49:59] INFO Recording started (16kHz/16-bit/mono)
[2026-06-03 00:50:00] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=12 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.024s tapStarted=true
[2026-06-03 00:50:00] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-03 00:50:00] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-03 00:50:00] INFO Hotkey released: key=R-Alt mode=hold duration=2159ms recording=true combination=false
[2026-06-03 00:50:00] INFO Stopping audio device
[2026-06-03 00:50:00] INFO Recording stopped, 30400 samples captured
[2026-06-03 00:50:00] INFO Audio device stopped
[2026-06-03 00:50:00] INFO Audio device uninitialized
[2026-06-03 00:50:01] INFO Recognized: 认可你的思路。
[2026-06-03 00:50:02] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=13 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.002s tapStarted=true
[2026-06-03 00:50:02] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-03 00:50:02] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-03 00:50:02] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-03 00:50:02] INFO Hotkey action: start hold-to-talk after 209ms
[2026-06-03 00:50:02] INFO Recording started
[2026-06-03 00:50:02] INFO Recording started (16kHz/16-bit/mono)
[2026-06-03 00:50:04] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=14 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.010s tapStarted=true
[2026-06-03 00:50:04] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-03 00:50:04] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-03 00:50:04] INFO Hotkey released: key=R-Alt mode=hold duration=2399ms recording=true combination=false
[2026-06-03 00:50:04] INFO Stopping audio device
[2026-06-03 00:50:04] INFO Recording stopped, 34400 samples captured
[2026-06-03 00:50:04] INFO Audio device stopped
[2026-06-03 00:50:04] INFO Audio device uninitialized
[2026-06-03 00:50:04] INFO Recognized: 就按你说的去做吧。
[2026-06-03 00:50:33] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=15 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.017s tapStarted=true
[2026-06-03 00:50:33] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-03 00:50:33] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-03 00:50:33] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-03 00:50:33] INFO Hotkey action: start hold-to-talk after 209ms
[2026-06-03 00:50:33] INFO Recording started
[2026-06-03 00:50:34] INFO Recording started (16kHz/16-bit/mono)
[2026-06-03 00:50:39] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=16 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.017s tapStarted=true
[2026-06-03 00:50:39] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-03 00:50:39] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-03 00:50:39] INFO Hotkey released: key=R-Alt mode=hold duration=5879ms recording=true combination=false
[2026-06-03 00:50:39] INFO Stopping audio device
[2026-06-03 00:50:39] INFO Recording stopped, 90400 samples captured
[2026-06-03 00:50:39] INFO Audio device stopped
[2026-06-03 00:50:39] INFO Audio device uninitialized
[2026-06-03 00:50:39] INFO Recognized: 我刚才没在电脑旁边,现在我回来了,我们可以重新跑一下这个吗?
[2026-06-03 00:51:23] INFO Cleaning up...
[2026-06-03 00:51:23] INFO Cleanup complete
[2026-06-03 00:55:40] INFO PrivateVoice Input starting... version=2.1.19 build=20260602.2022 executable=/Applications/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input dataDir=/Users/ar/Library/Application Support/PrivateVoice Input
[2026-06-03 00:55:40] INFO Accessibility permission granted
[2026-06-03 00:55:40] INFO Keyboard event tap started; attempts=1 failures=0 disabled=0
[2026-06-03 00:55:40] INFO Application initialized, starting Wails
[2026-06-03 00:55:40] INFO Initializing ASR engine...
[2026-06-03 00:55:40] INFO Loading model sensevoice-zh from /Users/ar/Library/Application Support/PrivateVoice Input/models/sensevoice
[2026-06-03 00:55:40] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-03 00:55:40] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=false recording=false freetalk=false engineReady=false recordingHotkey=false
[2026-06-03 00:55:42] INFO Engine initialized: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 00:55:42] INFO ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 00:55:48] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=1 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.007s tapStarted=true
[2026-06-03 00:55:48] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-03 00:55:48] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-03 00:55:48] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-03 00:55:48] INFO Hotkey action: start hold-to-talk after 180ms
[2026-06-03 00:55:48] INFO Recording started
[2026-06-03 00:55:48] INFO Recording started (16kHz/16-bit/mono)
[2026-06-03 00:55:50] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=2 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.003s tapStarted=true
[2026-06-03 00:55:50] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-03 00:55:50] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-03 00:55:50] INFO Hotkey released: key=R-Alt mode=hold duration=1739ms recording=true combination=false
[2026-06-03 00:55:50] INFO Stopping audio device
[2026-06-03 00:55:50] INFO Recording stopped, 24800 samples captured
[2026-06-03 00:55:50] INFO Audio device stopped
[2026-06-03 00:55:50] INFO Audio device uninitialized
[2026-06-03 00:55:50] INFO Recognized: 这是本地目录。
02-P-NBL/round-1/logs/qa-runtime/new-user-recognition-20260603.005122.setup.log
New file
@@ -0,0 +1,5 @@
run_id=20260603.005122
backup_dir=/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/QA-backups/pre-new-user-recognition-20260603.005122
hold_dir=/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/QA-backups/original-userdata-held-for-new-user-recognition-20260603.005122
app_data_exists_after_move=no
held_size=235M    /Users/ar/Projects/VoiceSnap-2.1.1-QA-build/QA-backups/original-userdata-held-for-new-user-recognition-20260603.005122/PrivateVoice Input
02-P-NBL/round-1/logs/qa-runtime/offline-restart-app-log-20260602.log
New file
@@ -0,0 +1,65 @@
[2026-06-02 22:59:09] INFO PrivateVoice Input starting... version=2.1.19 build=20260602.2022 executable=/Applications/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input dataDir=/Users/ar/Library/Application Support/PrivateVoice Input
[2026-06-02 22:59:10] INFO Accessibility permission granted
[2026-06-02 22:59:10] INFO Keyboard event tap started; attempts=1 failures=0 disabled=0
[2026-06-02 22:59:10] INFO Application initialized, starting Wails
[2026-06-02 22:59:10] INFO Initializing ASR engine...
[2026-06-02 22:59:10] INFO Loading model sensevoice-zh from /Users/ar/Library/Application Support/PrivateVoice Input/models/sensevoice
[2026-06-02 22:59:10] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-02 22:59:10] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=false recording=false freetalk=false engineReady=false recordingHotkey=false
[2026-06-02 22:59:14] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=1 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.009s tapStarted=true
[2026-06-02 22:59:14] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-02 22:59:14] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=false recordingHotkey=false
[2026-06-02 22:59:14] INFO Hotkey ignored: key=R-Alt engineReady=false recordingHotkey=false
[2026-06-02 22:59:14] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=2 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.011s tapStarted=true
[2026-06-02 22:59:14] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-02 22:59:14] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=false recording=false freetalk=false engineReady=false recordingHotkey=false
[2026-06-02 22:59:16] INFO Engine initialized: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-02 22:59:16] INFO ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-02 22:59:19] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=3 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.022s tapStarted=true
[2026-06-02 22:59:19] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-02 22:59:19] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 22:59:19] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-02 22:59:19] INFO Hotkey action: start hold-to-talk after 180ms
[2026-06-02 22:59:19] INFO Recording started
[2026-06-02 22:59:19] INFO Recording started (16kHz/16-bit/mono)
[2026-06-02 22:59:25] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=4 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.004s tapStarted=true
[2026-06-02 22:59:25] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-02 22:59:25] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 22:59:25] INFO Hotkey released: key=R-Alt mode=hold duration=6570ms recording=true combination=false
[2026-06-02 22:59:25] INFO Stopping audio device
[2026-06-02 22:59:25] INFO Recording stopped, 100800 samples captured
[2026-06-02 22:59:25] INFO Audio device stopped
[2026-06-02 22:59:25] INFO Audio device uninitialized
[2026-06-02 22:59:25] INFO Recognized: 这是 mac 电脑用 SenseVoice 做离线识别。
[2026-06-02 23:00:56] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=5 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.009s tapStarted=true
[2026-06-02 23:00:56] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-02 23:00:56] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 23:00:56] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-02 23:00:56] INFO Hotkey action: start hold-to-talk after 209ms
[2026-06-02 23:00:56] INFO Recording started
[2026-06-02 23:00:56] INFO Recording started (16kHz/16-bit/mono)
[2026-06-02 23:00:59] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=6 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.019s tapStarted=true
[2026-06-02 23:00:59] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-02 23:00:59] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 23:00:59] INFO Hotkey released: key=R-Alt mode=hold duration=3569ms recording=true combination=false
[2026-06-02 23:00:59] INFO Recording stopped, 53600 samples captured
[2026-06-02 23:00:59] INFO Stopping audio device
[2026-06-02 23:00:59] INFO Audio device stopped
[2026-06-02 23:00:59] INFO Audio device uninitialized
[2026-06-02 23:00:59] INFO Recognized: 这篇文章所说的 s voice。
[2026-06-02 23:01:08] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=7 event=flagsChanged eventDown=true pollDown=true physicalDown=false trackedDown=true recentDown=true flags=0x80140 age=0.007s tapStarted=true
[2026-06-02 23:01:08] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=true source=eventTap physicalDown=false trackedDown=true recentDown=true tapStarted=true
[2026-06-02 23:01:08] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=true active=false recording=false freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 23:01:08] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-02 23:01:09] INFO Hotkey action: start hold-to-talk after 209ms
[2026-06-02 23:01:09] INFO Recording started
[2026-06-02 23:01:09] INFO Recording started (16kHz/16-bit/mono)
[2026-06-02 23:01:15] INFO Hotkey event tap: key=R-Alt vk=0xA5 keyCode=61 seq=8 event=flagsChanged eventDown=false pollDown=false physicalDown=false trackedDown=false recentDown=false flags=0x100 age=0.015s tapStarted=true
[2026-06-02 23:01:15] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-02 23:01:15] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=true recording=true freetalk=false engineReady=true recordingHotkey=false
[2026-06-02 23:01:15] INFO Hotkey released: key=R-Alt mode=hold duration=6599ms recording=true combination=false
[2026-06-02 23:01:15] INFO Stopping audio device
[2026-06-02 23:01:15] INFO Recording stopped, 101600 samples captured
[2026-06-02 23:01:15] INFO Audio device stopped
[2026-06-02 23:01:15] INFO Audio device uninitialized
[2026-06-02 23:01:15] INFO Recognized: 这篇文章所说的放 R 和我们现在用的 s word 是什么关系?
02-P-NBL/round-1/logs/qa-runtime/offline-restart-postcheck-20260602.log
New file
@@ -0,0 +1,22 @@
captured_at=2026-06-02 23:01:20 +0800
pid=38909
network_state_current:
Wi-Fi Power (en0): On
Network information
IPv4 network interface information
     en0 : flags      : 0x7 (IPv4,IPv6,DNS)
           address    : 192.168.0.75
           reach      : 0x00000002 (Reachable)
   REACH : flags 0x00000002 (Reachable)
IPv6 network interface information
     en0 : flags      : 0x7 (IPv4,IPv6,DNS)
           address    : 240e:47e:34e1:4cb6:4d1:d823:e133:af21
           reach      : 0x00000002 (Reachable)
   REACH : flags 0x00000002 (Reachable)
Network interfaces: en0
lsof_current:
02-P-NBL/round-1/logs/qa-runtime/offline-restart-test-20260602.223742.log
New file
@@ -0,0 +1,4 @@
offline restart QA started at 2026-06-02 22:37:42 +0800
log=/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/02-P-NBL/round-1/logs/qa-runtime/offline-restart-test-20260602.223742.log
history_before=1657 | 开干吧,需要我配合什么?我在电脑旁边呢。
waiting 20 seconds for manual network-off
02-P-NBL/round-1/logs/qa-runtime/offline-restart-test-20260602.225709.log
New file
@@ -0,0 +1,4 @@
offline restart QA started at 2026-06-02 22:57:09 +0800
log=/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/02-P-NBL/round-1/logs/qa-runtime/offline-restart-test-20260602.225709.log
history_before=1663 | I.
initial_network_state 2026-06-02 22:57:09 +0800
02-P-NBL/round-1/logs/qa-runtime/offline-restart-test-20260602.225709.pid
New file
@@ -0,0 +1 @@
38627
02-P-NBL/round-1/qa-report-20260602-2.1.19.md
New file
@@ -0,0 +1,458 @@
# Round 1 QA 报告 - 2.1.19
状态:功能性 QA PASS,可进入用户验收;正式公开分发仍需 Developer ID 签名和 notarization
日期:2026-06-02
测试包:PrivateVoice Input 2.1.19 build 20260602.2022
## 1. 测试对象
| 项目 | 内容 |
|---|---|
| QA 包目录 | `/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/Release/PrivateVoice-Input-2.1.19-build20260602.2022` |
| manifest | `/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/Release/PrivateVoice-Input-2.1.19-build20260602.2022/RELEASE_MANIFEST.md` |
| 源码 commit | `f4194105fe06baa18f0145cc59e1914f96f2d4cb` |
| tag | `v2.1.19-build20260602.2022` |
| 安装架构 | arm64 |
| 安装方式 | 覆盖安装到 `/Applications/PrivateVoice Input.app` |
## 2. 安装前基线
旧版 App:
- version:`2.1.18`
- build:`20260601.1905`
- bundle id:`com.privatevoice.input`
- 签名:`PrivateVoice Local Code Signing`
- 旧版进程运行中,PID 后续已退出。
用户数据:
| 项目 | 结果 |
|---|---|
| 数据目录 | `/Users/ar/Library/Application Support/PrivateVoice Input` |
| 数据目录大小 | 235 MB |
| 旧模型目录 | `models/sensevoice` |
| `config.json` | 存在 |
| `userdict.json` | 存在,146 条 replacement |
| `history.json` | 存在,安装前 1640 条历史 |
备份:
```text
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/QA-backups/pre-upgrade-20260602.2030
```
## 3. 覆盖安装结果
结论:PASS。
已执行:
- 退出旧版 `PrivateVoice Input`。
- 挂载 arm64 DMG。
- 复制 `PrivateVoice Input.app` 到 `/Applications`。
- 验证 `/Applications/PrivateVoice Input.app` 的 Info.plist 和 codesign。
安装后 App 元数据:
- `CFBundleShortVersionString = 2.1.19`
- `CFBundleVersion = 20260602.2022`
- `CFBundleIdentifier = com.privatevoice.input`
- `LSUIElement = true`
- `LSMinimumSystemVersion = 11.0`
签名验证:
```text
/Applications/PrivateVoice Input.app: valid on disk
/Applications/PrivateVoice Input.app: satisfies its Designated Requirement
```
## 4. 启动与旧模型 fallback
结论:PASS。
启动日志确认:
```text
PrivateVoice Input starting... version=2.1.19 build=20260602.2022
Loading model sensevoice-zh from /Users/ar/Library/Application Support/PrivateVoice Input/models/sensevoice
Engine initialized: SenseVoice · CoreML (Apple Neural Engine)
ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)
```
判断:
- 新版 `sensevoice-zh` profile 成功 fallback 到旧目录 `models/sensevoice`。
- 没有要求用户重新下载模型。
- `models/state.json` 不存在时 fallback 路径正常。
## 5. 用户数据保留
结论:PASS。
升级后关键哈希:
| 文件 | 结果 |
|---|---|
| `config.json` | 与安装前一致 |
| `userdict.json` | 与安装前一致 |
| `models/sensevoice/model.int8.onnx` | 与安装前一致 |
| `models/sensevoice/tokens.txt` | 与安装前一致 |
| `history.json` | 发生变化,符合新增识别历史预期 |
升级后统计:
- replacement:146 条,保留。
- 历史:从 1640 条增加到 1656 条。
- replacement 补测阶段人工新增 3 条规则,当前 replacement 为 149 条;这属于 QA 补测操作,不属于安装过程改写用户数据。
## 6. 权限与真实录音识别
结论:PASS。
日志确认:
- Accessibility permission granted。
- Keyboard event tap started。
- R-Alt 热键触发录音。
- Audio device started / stopped。
- ASR engine ready 后完成真实识别。
真实输入证据:
```text
Recognized: 说完了。
```
历史写入证据:
- 历史条数从 1640 增加到 1641,再增加到 1642,后续继续增加到 1656。
- `history.json` 最新记录包含真实识别文本。
说明:
- 麦克风权限未弹窗,但真实录音成功,说明当前本机权限可用。
- 自动上屏路径由用户实际用 VoiceSnap 回复文本间接验证。
## 7. 网络观察
结论:PASS。
观察方式:
```bash
lsof -nP -a -i -p <PrivateVoice Input PID>
```
采样时间:
```text
2026-06-02 22:09:47 - 22:10:17
```
结果:
- 30 次采样均未发现 `PrivateVoice Input` 进程持有网络 socket。
- 采样期间发生一次真实录音识别。
日志文件:
```text
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/02-P-NBL/round-1/logs/qa-runtime/network-sample-20260602.log
```
## 8. 物理断网启动识别
结论:PASS。
执行方式:
- 用户在本机手动关闭网络。
- QA 脚本触发 App 退出并重新启动。
- App 重启后,用户使用 R-Alt 进行真实语音输入。
- 用户恢复网络后,QA 复核 App 日志、进程启动时间、历史记录和当前网络 socket。
App 重启证据:
```text
PrivateVoice Input 当前进程:
PID 38909
启动时间 Tue Jun 2 22:59:09 2026
```
启动日志证据:
```text
[2026-06-02 22:59:09] INFO PrivateVoice Input starting... version=2.1.19 build=20260602.2022
[2026-06-02 22:59:10] INFO Loading model sensevoice-zh from /Users/ar/Library/Application Support/PrivateVoice Input/models/sensevoice
[2026-06-02 22:59:16] INFO Engine initialized: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-02 22:59:16] INFO ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)
```
真实识别证据:
```text
[2026-06-02 22:59:19] INFO Recording started
[2026-06-02 22:59:25] INFO Recording stopped, 100800 samples captured
[2026-06-02 22:59:25] INFO Recognized: 这是 mac 电脑用 SenseVoice 做离线识别。
```
历史写入证据:
```text
history.json 最新记录:
这是 mac 电脑用 SenseVoice 做离线识别。
```
网络证据边界:
- 本轮断网期间的监控脚本在初始网络状态后中断,没有留下连续 socket 采样。
- 断网动作由用户手动执行,测试句在用户恢复网络后回传确认。
- 之前已有 30 秒识别期间无网络 socket 的独立采样,本轮恢复网络后复核 `PrivateVoice Input` 当前进程也无网络 socket。
日志文件:
```text
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/02-P-NBL/round-1/logs/qa-runtime/offline-restart-app-log-20260602.log
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/02-P-NBL/round-1/logs/qa-runtime/offline-restart-postcheck-20260602.log
```
判断:
- 断网后 App 可以重新启动。
- 断网后旧模型 fallback 仍可加载 SenseVoice。
- 断网后真实录音、识别、replacement 和历史写入链路可用。
## 9. replacement 验证
结论:PASS。
已通过:
- 覆盖安装后用户词库文件保留。
- 覆盖安装后原有 146 条 replacement 规则保留。
- 升级后未损坏 `userdict.json`。
- 补充规则并重启 App 后,真实识别链路中出现 replacement 后文本。
补测过程:
- 备份补测前用户词库:`/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/QA-backups/userdict-before-replacement-rules-20260602.2216.json`
- 人工新增 3 条规则:
  - `麦 ac -> Mac`
  - `ss voiceice -> SenseVoice`
  - `sin voice -> SenseVoice`
- 当前 replacement 数量:149 条。
- 重启 App 后重新测试 SenseVoice 离线识别。
真实输入证据:
```text
这是 mac 电脑用 SenseVoice 做离线识别。
```
历史写入证据:
```text
history.json 最新记录包含:
好了。
这是 mac 电脑用 SenseVoice 做离线识别。
这是Mac 电脑用 sing voice 做离线识别。
这是咩卖。
```
判断:
- replacement 引擎在真实识别链路中可触发。
- 原始失败更像是规则覆盖不足,不是 replacement 引擎失效。
- `sing voice -> SenseVoice` 是后续可补充的词库覆盖项,不阻塞 Round 1 模型 profile QA。
## 10. 新用户干净安装
结论:PASS。
执行方式:
- 备份当前真实用户数据目录。
- 退出 App。
- 将 `/Users/ar/Library/Application Support/PrivateVoice Input` 临时移动到隔离目录。
- 启动 `/Applications/PrivateVoice Input.app`,模拟完全没有历史、词库和模型的新用户。
- 记录首启文件、模型下载、引擎初始化、网络 socket、App 日志。
- 测试完成后恢复原用户数据目录并重启 App。
备份与隔离:
```text
完整备份:
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/QA-backups/pre-new-user-clean-install-20260602.231851
原数据临时隔离:
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/QA-backups/original-userdata-held-for-new-user-20260602.231851
新用户测试生成的数据:
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/QA-backups/new-user-generated-data-20260602.231851
```
新用户首启结果:
```text
启动时间:2026-06-02 23:19:19
新数据目录大小:228 MB
生成文件:
app.log
config.json
userdict.json
models/state.json
models/sensevoice-zh/model.int8.onnx
models/sensevoice-zh/tokens.txt
```
首启日志证据:
```text
[2026-06-02 23:19:19] INFO PrivateVoice Input starting... version=2.1.19 build=20260602.2022
[2026-06-02 23:19:19] ERROR Engine initialization failed: model sensevoice-zh is not usable: not_installed missing=[/Users/ar/Library/Application Support/PrivateVoice Input/models/sensevoice] problems=[]
[2026-06-02 23:19:19] INFO Downloading model from URL 1: http://www.maikami.com/voicesnap/sensevoice.zip
[2026-06-02 23:19:27] INFO Extracting model archive...
[2026-06-02 23:19:27] INFO Model download and extraction complete
[2026-06-02 23:19:27] INFO Loading model sensevoice-zh from /Users/ar/Library/Application Support/PrivateVoice Input/models/sensevoice-zh
[2026-06-02 23:19:30] INFO Engine initialized: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-02 23:19:30] INFO ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)
```
网络行为:
```text
PrivateVoice Input 打开到 http://www.maikami.com/voicesnap/sensevoice.zip 的 HTTP 连接。
```
判断:
- 新用户无本地模型时,App 会自动下载默认 SenseVoice 模型。
- 下载完成后模型落在新 profile 目录 `models/sensevoice-zh`。
- 新用户首启后可以完成 SenseVoice 初始化。
- 首次初始化失败日志中的 missing path 指向旧目录 `models/sensevoice`,但后续下载和 `sensevoice-zh` 初始化成功;这是日志可读性问题,不是本轮功能阻断。
首轮遗留与补测结果:
- 2026-06-02 首轮测试中,60 秒轮询期间没有采集到新用户状态下的真实语音输入。
- 2026-06-03 重新执行补测,已采集到新用户状态下的真实语音输入和历史写入。
2026-06-03 补测:
```text
备份:
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/QA-backups/pre-new-user-recognition-20260603.005122
原数据临时隔离:
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/QA-backups/original-userdata-held-for-new-user-recognition-20260603.005122
新用户测试生成的数据:
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/QA-backups/new-user-generated-data-20260603.005122
```
补测首启日志:
```text
[2026-06-03 00:51:42] INFO PrivateVoice Input starting... version=2.1.19 build=20260602.2022
[2026-06-03 00:51:43] INFO Downloading model from URL 1: http://www.maikami.com/voicesnap/sensevoice.zip
[2026-06-03 00:51:50] INFO Extracting model archive...
[2026-06-03 00:51:51] INFO Model download and extraction complete
[2026-06-03 00:51:51] INFO Loading model sensevoice-zh from /Users/ar/Library/Application Support/PrivateVoice Input/models/sensevoice-zh
[2026-06-03 00:51:53] INFO ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)
```
补测真实识别与历史写入证据:
```text
[2026-06-03 00:54:33] INFO Recognized: 我上次在 getthub 上,然后把我的软件的 help 文档都上传到这里了。我现在需要更新一下。
[2026-06-03 00:54:36] INFO Recognized: 我应该怎么操作呢?
[2026-06-03 00:54:45] INFO Recognized: 另外你建不建议我下一个 github 的 DMG 在本地安装一下,用客户端操作。
[2026-06-03 00:55:04] INFO Recognized: 我只是想覆盖一下已经上传的文件,然后文件名和下载地址都不要变。
新用户 history.json:
4 条记录,最新记录为:
我只是想覆盖一下已经上传的文件,然后文件名和下载地址都不要变。
```
恢复结果:
```text
2026-06-02 首轮恢复时间:2026-06-02 23:22:04
2026-06-03 补测恢复时间:2026-06-03 00:55:54
恢复后数据目录大小:235 MB
恢复后历史:1676 条
恢复后 replacement:149 条
恢复后模型目录:models/sensevoice
恢复后 App 重新加载 SenseVoice 成功。
```
日志文件:
```text
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/02-P-NBL/round-1/logs/qa-runtime/new-user-clean-install-20260602.231851.setup.log
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/02-P-NBL/round-1/logs/qa-runtime/new-user-clean-install-20260602.231851.launch.log
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/02-P-NBL/round-1/logs/qa-runtime/new-user-clean-install-20260602.231851.recognition.log
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/02-P-NBL/round-1/logs/qa-runtime/new-user-clean-install-20260602.231851.restore.log
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/02-P-NBL/round-1/logs/qa-runtime/new-user-recognition-20260603.005122.setup.log
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/02-P-NBL/round-1/logs/qa-runtime/new-user-recognition-20260603.005122.launch.log
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/02-P-NBL/round-1/logs/qa-runtime/new-user-recognition-20260603.005122.recognition.log
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/02-P-NBL/round-1/logs/qa-runtime/new-user-recognition-20260603.005122.restore.log
```
## 11. 窗口 / Dock smoke
结论:PASS。
检查结果:
```text
System Events process: PrivateVoice Input
background only=false
visible=true
frontmost=false
windows=2
LSUIElement=true
```
判断:
- App 进程存在。
- Dock 隐藏配置存在。
- 当前至少有窗口对象,未发现启动后无窗口/无进程问题。
## 12. 验证矩阵
| 项目 | 状态 | 原因 |
|---|---|---|
| replacement 真实触发 | PASS | 补充规则并重启后,真实识别链路出现 `SenseVoice` 替换结果 |
| 完整断网启动识别 | PASS | 用户手动断网后 App 重启、SenseVoice 初始化、真实识别和历史写入均成功 |
| 新用户干净安装 | PASS | 首启、下载、安装、初始化、第一次真实识别和历史写入均通过 |
| Developer ID / notarization | NOT RUN | 当前包是本地签名 QA 包 |
## 13. QA 结论
当前结论:
```text
2.1.19 Round 1 QA 包功能性 QA PASS,可进入用户验收;正式公开分发仍需 Developer ID 签名和 notarization。
```
已通过的核心项:
- 可回滚构建链路:commit + tag + manifest + SHA256。
- 覆盖安装。
- 旧用户数据保留。
- 旧模型 fallback。
- CoreML SenseVoice 初始化。
- 真实录音识别。
- 历史写入。
- 识别期间无网络 socket。
- 物理断网后启动和识别。
- 新用户首启自动下载模型并初始化。
- 新用户第一次真实识别和历史写入。
- 基础窗口 / Dock smoke。
不属于本地功能 QA、但正式分发前仍需完成的项目:
- Developer ID 签名和 notarization。
02-P-NBL/round-2/logs/qa-runtime/build-local-round2-20260603.014931.log
New file
@@ -0,0 +1,144 @@
==> Preflight checks
Using existing local signing identity: PrivateVoice Local Code Signing
==> Cleaning old local build
==> Building frontend
> privatevoice-input-frontend@2.1.19 build
> vite build
vite v6.4.1 building for production...
transforming...
1:53:56 AM [vite-plugin-svelte] src/components/update/UpdateDialog.svelte:28:0 Elements with the 'dialog' interactive role must have a tabindex value
https://svelte.dev/e/a11y_interactive_supports_focus
26:
27: <!-- svelte-ignore a11y_click_events_have_key_events -->
28: <div class="overlay" onclick={onclose} role="dialog">
          ^
29:   <!-- svelte-ignore a11y_click_events_have_key_events -->
30:   <div class="dialog" onclick={(e) => e.stopPropagation()} role="document">
1:53:56 AM [vite-plugin-svelte] src/components/update/UpdateDialog.svelte:30:2 Non-interactive element `<div>` should not be assigned mouse or keyboard event listeners
https://svelte.dev/e/a11y_no_noninteractive_element_interactions
28: <div class="overlay" onclick={onclose} role="dialog">
29:   <!-- svelte-ignore a11y_click_events_have_key_events -->
30:   <div class="dialog" onclick={(e) => e.stopPropagation()} role="document">
            ^
31:     <h2 class="title">{t('update.title')}</h2>
32:     <p class="version">{t('update.version', { version: info.version })}</p>
1:53:56 AM [vite-plugin-svelte] src/components/shared/ToggleSwitch.svelte:17:0 Buttons and links should either contain text or have an `aria-label`, `aria-labelledby` or `title` attribute
https://svelte.dev/e/a11y_consider_explicit_label
15: </script>
16:
17: <button
           ^
18:   class="toggle"
19:   class:active={checked}
✓ 163 modules transformed.
rendering chunks...
computing gzip size...
dist/index.html                      0.41 kB │ gzip:  0.28 kB
dist/assets/app-icon-Bs-pS5hx.png  400.98 kB
dist/assets/index-p3GQqwqB.css      33.39 kB │ gzip:  5.73 kB
dist/assets/index-yZ25Q-mY.js      137.08 kB │ gzip: 45.83 kB
✓ built in 475ms
==> Building Go binary (arm64)
# voicesnap
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/go.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000000.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000001.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000002.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000003.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000004.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000005.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000006.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000007.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000028.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000029.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000030.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000031.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000032.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000033.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000034.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000035.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000036.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000037.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000038.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000039.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000040.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000041.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000042.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000043.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000044.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000045.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000046.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000047.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000048.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000049.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000050.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000051.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000052.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000053.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000054.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1830242072/000055.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: building for macOS-11.0, but linking with dylib '@rpath/libonnxruntime.1.23.2.dylib' which was built for newer version 13.4
==> Assembling PrivateVoice Input.app
==> Fixing rpaths
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool: warning: changes being made to the file will invalidate the code signature in: /Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/Frameworks/libonnxruntime.1.23.2.dylib
==> Code signing with stable local identity
/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/Frameworks/libonnxruntime.1.23.2.dylib: replacing existing signature
/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/Frameworks/libsherpa-onnx-c-api.dylib: replacing existing signature
/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input: replacing existing signature
/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app: replacing existing signature
==> Verifying app signature
--prepared:/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/Frameworks/libsherpa-onnx-c-api.dylib
--validated:/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/Frameworks/libsherpa-onnx-c-api.dylib
--prepared:/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/Frameworks/libonnxruntime.1.23.2.dylib
--validated:/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/Frameworks/libonnxruntime.1.23.2.dylib
/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app: valid on disk
/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app: satisfies its Designated Requirement
Executable=/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input
Identifier=com.privatevoice.input
Format=app bundle with Mach-O thin (arm64)
CodeDirectory v=20500 size=28279 flags=0x10000(runtime) hashes=873+7 location=embedded
Signature size=1830
Authority=PrivateVoice Local Code Signing
Signed Time=Jun 3, 2026 at 01:54:01
Info.plist entries=12
TeamIdentifier=not set
Runtime Version=26.2.0
Sealed Resources version=2 rules=13 files=3
Internal requirements count=1 size=100
==> Creating DMG
created: /Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input-2.1.19-build20260602.2022-arm64-local.dmg
==> Signing DMG
正在检查“Protective Master Boot Record(MBR:0)”的校验和…
Protective Master Boot Record(MBR:0):已验证CRC32 $1721BF9F
正在检查“GPT Header(Primary GPT Header:1)”的校验和…
    GPT Header(Primary GPT Header:1):已验证CRC32 $9676C45C
正在检查“GPT Partition Data(Primary GPT Table:2)”的校验和…
GPT Partition Data(Primary GPT Table:已验证CRC32 $5E129C96
正在检查“(Apple_Free:3)”的校验和…
                      (Apple_Free:3):已验证CRC32 $00000000
正在检查“disk image(Apple_APFS:4)”的校验和…
            disk image(Apple_APFS:4):已验证CRC32 $BC65881B
正在检查“GPT Partition Data(Backup GPT Table:5)”的校验和…
GPT Partition Data(Backup GPT Table::已验证CRC32 $5E129C96
正在检查“GPT Header(Backup GPT Header:6)”的校验和…
     GPT Header(Backup GPT Header:6):已验证CRC32 $5182E0D1
已验证CRC32 $9494B0AD
hdiutil: verify: checksum of "/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input-2.1.19-build20260602.2022-arm64-local.dmg" is VALID
==> Local build complete
  App: /Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app
  DMG: /Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input-2.1.19-build20260602.2022-arm64-local.dmg
  Compatibility DMG: /Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input-2.1.19-arm64-local.dmg
  Signing identity: PrivateVoice Local Code Signing
02-P-NBL/round-2/logs/qa-runtime/current-run-id.txt
New file
@@ -0,0 +1 @@
20260603.014931
02-P-NBL/round-2/logs/qa-runtime/new-user-run-20260603.014931.log
New file
@@ -0,0 +1,23 @@
[2026-06-03 02:18:22] INFO PrivateVoice Input starting... version=2.1.19 build=20260602.2022 executable=/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input dataDir=/Users/ar/Projects/VoiceSnap-2.1.1-Round2/02-P-NBL/round-2/logs/qa-runtime/new-user-home-20260603.014931/Library/Application Support/PrivateVoice Input
[2026-06-03 02:18:22] INFO Accessibility permission granted
[2026-06-03 02:18:22] INFO Keyboard event tap started; attempts=1 failures=0 disabled=0
2:18AM INF Build Info: Wails=v3.0.0-alpha.71 Compiler=go1.26.3 CGO_CFLAGS="" CGO_CPPFLAGS="" GOOS=darwin GOARM64=v8.0 -buildmode=exe -compiler=gc -ldflags="-s -w" CGO_ENABLED=1 CGO_CXXFLAGS="" CGO_LDFLAGS="" GOARCH=arm64 -gcflags="all=-l" DefaultGODEBUG="cryptocustomrand=1,tlssecpmlkem=0,urlstrictcolons=0"
2:18AM INF AssetServer Info: middleware=true handler=true
2:18AM INF Platform Info: ID=25F71 Name=MacOS Version=26.5 Branding="MacOS 26.5"
[2026-06-03 02:18:22] INFO Application initialized, starting Wails
[2026-06-03 02:18:22] INFO Initializing ASR engine...
[2026-06-03 02:18:22] ERROR Engine initialization failed: model sensevoice-zh is not usable: not_installed missing=[/Users/ar/Projects/VoiceSnap-2.1.1-Round2/02-P-NBL/round-2/logs/qa-runtime/new-user-home-20260603.014931/Library/Application Support/PrivateVoice Input/models/sensevoice] problems=[]
[2026-06-03 02:18:22] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-03 02:18:22] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=false recording=false freetalk=false engineReady=false recordingHotkey=false
2:18AM INF [AssetFileServerFS] Handling request url=/ file=.
2:18AM INF [AssetFileServerFS] Handling request url=/assets/index-p3GQqwqB.css file=assets/index-p3GQqwqB.css
2:18AM INF [AssetFileServerFS] Handling request url=/assets/index-yZ25Q-mY.js file=assets/index-yZ25Q-mY.js
2:18AM INF [AssetFileServerFS] Handling request url=/wails/custom.js file=wails/custom.js
2:18AM INF [AssetFileServerFS] Handling request url=/assets/app-icon-Bs-pS5hx.png file=assets/app-icon-Bs-pS5hx.png
[2026-06-03 02:18:23] INFO Downloading model from URL 1: http://www.maikami.com/voicesnap/sensevoice.zip
[2026-06-03 02:18:51] INFO Extracting model archive...
[2026-06-03 02:18:52] INFO Model download and extraction complete
[2026-06-03 02:18:52] INFO Initializing ASR engine...
[2026-06-03 02:18:52] INFO Loading model sensevoice-zh from /Users/ar/Projects/VoiceSnap-2.1.1-Round2/02-P-NBL/round-2/logs/qa-runtime/new-user-home-20260603.014931/Library/Application Support/PrivateVoice Input/models/sensevoice-zh
[2026-06-03 02:18:54] INFO Engine initialized: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 02:18:54] INFO ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)
02-P-NBL/round-2/logs/qa-runtime/new-user-run-20260603.014931.pid
New file
@@ -0,0 +1 @@
84784
02-P-NBL/round-2/logs/qa-runtime/offline-start-check-20260603.014931.log
New file
@@ -0,0 +1,38 @@
before_wifi=Wi-Fi Power (en0): On
turning_wifi_off
after_wifi=Wi-Fi Power (en0): Off
network_probe_start
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0curl: (6) Could not resolve host: www.apple.com
restart_app_offline
process_check
86122 74315 /bin/zsh         /bin/zsh -lc bash -lc 'set -euo pipefail\012RUN_ID="$(cat /Users/ar/Projects/VoiceSnap-2.1.1-Round2/02-P-NBL/round-2/logs/qa-runtime/current-run-id.txt)"\012trap "networksetup -setairportpower en0 on >/dev/null 2>&1 || true" EXIT\012echo "before_wifi=$(networksetup -getairportpower en0)"\012echo "turning_wifi_off"\012networksetup -setairportpower en0 off\012sleep 6\012echo "after_wifi=$(networksetup -getairportpower en0)"\012echo "network_probe_start"\012curl -I --connect-timeout 3 https://www.apple.com >/tmp/round2-offline-curl.$$ 2>&1 || true\012head -c 1000 /tmp/round2-offline-curl.$$ || true\012rm -f /tmp/round2-offline-curl.$$\012echo "restart_app_offline"\012osascript -e "tell application \"PrivateVoice Input\" to quit" >/dev/null 2>&1 || true\012sleep 1\012open -n "/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app"\012sleep 6\012echo "process_check"\012ps -axo pid,ppid,comm,args | rg "/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app" || true\012echo "log_check"\012tail -n 80 "/Users/ar/Library/Application Support/PrivateVoice Input/app.log" | rg "PrivateVoice Input starting|executable=|Engine initialized|ASR engine ready|download|failed|error" | tail -n 40 || true\012echo "turning_wifi_on"\012networksetup -setairportpower en0 on\012sleep 3\012echo "restored_wifi=$(networksetup -getairportpower en0)"\012' 2>&1 | tee /Users/ar/Projects/VoiceSnap-2.1.1-Round2/02-P-NBL/round-2/logs/qa-runtime/offline-start-check-$(cat /Users/ar/Projects/VoiceSnap-2.1.1-Round2/02-P-NBL/round-2/logs/qa-runtime/current-run-id.txt).log | tail -c 6000
86131 86122 bash             bash -lc set -euo pipefail\012RUN_ID="$(cat /Users/ar/Projects/VoiceSnap-2.1.1-Round2/02-P-NBL/round-2/logs/qa-runtime/current-run-id.txt)"\012trap "networksetup -setairportpower en0 on >/dev/null 2>&1 || true" EXIT\012echo "before_wifi=$(networksetup -getairportpower en0)"\012echo "turning_wifi_off"\012networksetup -setairportpower en0 off\012sleep 6\012echo "after_wifi=$(networksetup -getairportpower en0)"\012echo "network_probe_start"\012curl -I --connect-timeout 3 https://www.apple.com >/tmp/round2-offline-curl.$$ 2>&1 || true\012head -c 1000 /tmp/round2-offline-curl.$$ || true\012rm -f /tmp/round2-offline-curl.$$\012echo "restart_app_offline"\012osascript -e "tell application \"PrivateVoice Input\" to quit" >/dev/null 2>&1 || true\012sleep 1\012open -n "/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app"\012sleep 6\012echo "process_check"\012ps -axo pid,ppid,comm,args | rg "/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app" || true\012echo "log_check"\012tail -n 80 "/Users/ar/Library/Application Support/PrivateVoice Input/app.log" | rg "PrivateVoice Input starting|executable=|Engine initialized|ASR engine ready|download|failed|error" | tail -n 40 || true\012echo "turning_wifi_on"\012networksetup -setairportpower en0 on\012sleep 3\012echo "restored_wifi=$(networksetup -getairportpower en0)"\012
86168     1 /Users/ar/Projec /Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input
86190 86131 rg               rg /Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app
log_check
[2026-06-03 01:50:29] INFO Engine initialized: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 01:50:29] INFO ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 01:50:42] INFO PrivateVoice Input starting... version=2.1.19 build=20260602.2022 executable=/Applications/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input dataDir=/Users/ar/Library/Application Support/PrivateVoice Input
[2026-06-03 01:50:49] INFO Engine initialized: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 01:50:49] INFO ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 01:54:21] INFO PrivateVoice Input starting... version=2.1.19 build=20260602.2022 executable=/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input dataDir=/Users/ar/Library/Application Support/PrivateVoice Input
[2026-06-03 01:54:24] INFO Engine initialized: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 01:54:24] INFO ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 01:54:51] INFO PrivateVoice Input starting... version=2.1.19 build=20260602.2022 executable=/Applications/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input dataDir=/Users/ar/Library/Application Support/PrivateVoice Input
[2026-06-03 01:55:10] INFO PrivateVoice Input starting... version=2.1.19 build=20260602.2022 executable=/Applications/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input dataDir=/Users/ar/Library/Application Support/PrivateVoice Input
[2026-06-03 02:12:11] INFO PrivateVoice Input starting... version=2.1.19 build=20260602.2022 executable=/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input dataDir=/Users/ar/Library/Application Support/PrivateVoice Input
[2026-06-03 02:12:13] INFO Engine initialized: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 02:12:13] INFO ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 02:20:15] INFO PrivateVoice Input starting... version=2.1.19 build=20260602.2022 executable=/Applications/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input dataDir=/Users/ar/Library/Application Support/PrivateVoice Input
[2026-06-03 02:20:18] INFO Engine initialized: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 02:20:18] INFO ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 02:23:34] INFO PrivateVoice Input starting... version=2.1.19 build=20260602.2022 executable=/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input dataDir=/Users/ar/Library/Application Support/PrivateVoice Input
[2026-06-03 02:23:37] INFO Engine initialized: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 02:23:37] INFO ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 02:28:44] INFO PrivateVoice Input starting... version=2.1.19 build=20260602.2022 executable=/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input dataDir=/Users/ar/Library/Application Support/PrivateVoice Input
[2026-06-03 02:28:46] INFO Engine initialized: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 02:28:46] INFO ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)
turning_wifi_on
restored_wifi=Wi-Fi Power (en0): On
02-P-NBL/round-2/logs/qa-runtime/offline-voice-final-20260603.014931.log
New file
@@ -0,0 +1,62 @@
run_id=20260603.014931
started_at=2026-06-03 11:40:21
history_before=1710
wifi_before=Wi-Fi Power (en0): On
turning_wifi_off=2026-06-03 11:40:21
wifi_after_off=Wi-Fi Power (en0): Off
network_probe_offline_start=2026-06-03 11:40:29
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0curl: (6) Could not resolve host: www.apple.com
voice_window_start=2026-06-03 11:40:29
voice_window_end=2026-06-03 11:41:44
turning_wifi_on=2026-06-03 11:41:44
wifi_after_restore=Wi-Fi Power (en0): On
network_probe_restored_start=2026-06-03 11:41:52
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0   0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
HTTP/2 200
server: Apple
content-type: text/html; charset=utf-8
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
strict-transport-security: max-age=31536000; includeSubdomains; preload
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'self' blob: data: *.akamaized.net *.apple.com *.apple-mapkit.com *.cdn-apple.com *.organicfruitapps.com; child-src blob: mailto: embed.music.apple.com embed.podcasts.apple.com https://recyclingprogram.apple.com https://smb.apple.com https://nova.apple.com swdlp.apple.com www.apple.com www.instagram.com platform.twitter.com www.youtube-nocookie.com; img-src 'unsa
history_after=1711
last_history=但是我还是这几句。
recent_log
[2026-06-03 01:50:49] INFO Engine initialized: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 01:50:49] INFO ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 01:54:24] INFO Engine initialized: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 01:54:24] INFO ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 02:12:13] INFO Engine initialized: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 02:12:13] INFO ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 02:20:18] INFO Engine initialized: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 02:20:18] INFO ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 02:23:37] INFO Engine initialized: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 02:23:37] INFO ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 02:28:46] INFO Engine initialized: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 02:28:46] INFO ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 11:39:48] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-03 11:39:49] INFO Recording started
[2026-06-03 11:39:49] INFO Recording started (16kHz/16-bit/mono)
[2026-06-03 11:39:50] INFO Hotkey released: key=R-Alt mode=hold duration=2064ms recording=true combination=false
[2026-06-03 11:39:50] INFO Recording stopped, 28800 samples captured
[2026-06-03 11:39:51] INFO Recognized: 我现在就配合你。
[2026-06-03 11:39:51] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-03 11:39:51] INFO Recording started
[2026-06-03 11:39:52] INFO Recording started (16kHz/16-bit/mono)
[2026-06-03 11:39:54] INFO Hotkey released: key=R-Alt mode=hold duration=2310ms recording=true combination=false
[2026-06-03 11:39:54] INFO Recording stopped, 32800 samples captured
[2026-06-03 11:39:54] INFO Recognized: 我在旁边等着呢。
[2026-06-03 11:40:36] INFO Hotkey accepted: key=R-Alt vk=0xA5 mode=hold freetalk=false
[2026-06-03 11:40:36] INFO Recording started
[2026-06-03 11:40:36] INFO Recording started (16kHz/16-bit/mono)
[2026-06-03 11:40:41] INFO Hotkey released: key=R-Alt mode=hold duration=4678ms recording=true combination=false
[2026-06-03 11:40:41] INFO Recording stopped, 71200 samples captured
[2026-06-03 11:40:41] INFO Recognized: 这是 mac 电脑用 SenseVoice 做离线识别。
finished_at=2026-06-03 11:41:53
02-P-NBL/round-2/logs/qa-runtime/offline-voice-safety-20260603.014931.log
New file
@@ -0,0 +1,2 @@
2026-06-03 02:40:51 safety restored wifi
2026-06-03 10:45:28 safety restored wifi
02-P-NBL/round-2/logs/qa-runtime/offline-voice-safety-20260603.014931.pid
New file
@@ -0,0 +1 @@
27621
02-P-NBL/round-2/logs/qa-runtime/offline-voice-start-20260603.014931.log
New file
@@ -0,0 +1 @@
bash: -c: line 5: unexpected EOF while looking for matching `)'
02-P-NBL/round-2/logs/qa-runtime/round2-local-run-20260603.014931.log
New file
@@ -0,0 +1,57 @@
# voicesnap
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/go.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000000.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000001.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000002.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000003.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000004.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000005.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000006.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000007.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000028.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000029.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000030.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000031.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000032.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000033.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000034.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000035.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000036.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000037.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000038.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000039.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000040.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000041.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000042.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000043.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000044.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000045.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000046.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000047.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000048.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000049.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000050.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000051.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000052.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000053.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000054.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2756778698/000055.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: building for macOS-11.0, but linking with dylib '@rpath/libonnxruntime.1.23.2.dylib' which was built for newer version 13.4
[2026-06-03 01:50:24] INFO PrivateVoice Input starting... version=2.1.19 build=20260602.2022 executable=/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-build3257239160/b001/exe/voicesnap dataDir=/Users/ar/Library/Application Support/PrivateVoice Input
[2026-06-03 01:50:24] INFO Accessibility permission granted
[2026-06-03 01:50:24] INFO Keyboard event tap started; attempts=1 failures=0 disabled=0
1:50AM INF Build Info: Wails=v3.0.0-alpha.71 Compiler=go1.26.3 -buildmode=exe DefaultGODEBUG="cryptocustomrand=1,tlssecpmlkem=0,urlstrictcolons=0" CGO_CPPFLAGS="" CGO_CXXFLAGS="" GOARCH=arm64 GOOS=darwin GOARM64=v8.0 -compiler=gc CGO_ENABLED=1 CGO_CFLAGS="" CGO_LDFLAGS=""
1:50AM INF Platform Info: ID=25F71 Name=MacOS Version=26.5 Branding="MacOS 26.5"
1:50AM INF AssetServer Info: middleware=true handler=true
[2026-06-03 01:50:24] INFO Application initialized, starting Wails
[2026-06-03 01:50:24] INFO Initializing ASR engine...
[2026-06-03 01:50:24] INFO Loading model sensevoice-zh from /Users/ar/Library/Application Support/PrivateVoice Input/models/sensevoice
[2026-06-03 01:50:24] INFO Hotkey poll: key=R-Alt vk=0xA5 keyCode=61 down=false source=none physicalDown=false trackedDown=false recentDown=false tapStarted=true
[2026-06-03 01:50:24] INFO Hotkey poll state: key=R-Alt vk=0xA5 mode=hold down=false active=false recording=false freetalk=false engineReady=false recordingHotkey=false
1:50AM INF [AssetFileServerFS] Handling request url=/ file=.
1:50AM INF [AssetFileServerFS] Handling request url=/assets/index-yZ25Q-mY.js file=assets/index-yZ25Q-mY.js
1:50AM INF [AssetFileServerFS] Handling request url=/assets/index-p3GQqwqB.css file=assets/index-p3GQqwqB.css
1:50AM INF [AssetFileServerFS] Handling request url=/wails/custom.js file=wails/custom.js
1:50AM INF [AssetFileServerFS] Handling request url=/assets/app-icon-Bs-pS5hx.png file=assets/app-icon-Bs-pS5hx.png
[2026-06-03 01:50:29] INFO Engine initialized: SenseVoice · CoreML (Apple Neural Engine)
[2026-06-03 01:50:29] INFO ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)
02-P-NBL/round-2/logs/qa-runtime/round2-local-run-20260603.014931.pid
New file
@@ -0,0 +1 @@
79750
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-activated.png
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-after-restart.png
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-chinese.png
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-cursor-1095-523.png
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-cursor-1260-565.png
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-cursor-693-310.png
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-english.png
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-english2.png
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-english3.png
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-english4.png
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-english5.png
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-english6.png
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-initial.png
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-new-user.png
02-P-NBL/round-2/logs/qa-runtime/round2-screen-20260603.014931-zh-manual.png
AGENTS.md
New file
@@ -0,0 +1,28 @@
## 项目属性
项目类型:研发项目
主要产物:Wails / Go 桌面语音输入 App
## 1. 命令输出保护
保护上下文用量。
任何输出量未知或可能很大的命令,都必须限制输出字节数。
默认安全写法:
```bash
COMMAND 2>&1 | head -c 6000
```
## 2. 发布版本规则
本项目声明为 `研发项目`,发布或分发安装包前默认遵守 `~/.codex/rules/release-versioning.md`;如本项目 release 文档或构建脚本另有更具体要求,以本项目规则为准。
## 3. 测试通过后的默认打包规则
当某一轮改动已经完成开发自测,并且 QA 验证也通过后,默认进入测试包交付流程,不需要再单独询问用户是否打包。
执行打包前仍必须遵守发布版本规则:递增 patch 版本号、生成新的 `YYYYMMDD.HHMM` build 编号、更新 App 元数据与 `CHANGELOG.md`,并生成可分发的 macOS `.dmg`。
如果只有开发自测通过,但 QA 尚未验证通过,则不得把该版本作为测试人员可用包交付;此时只说明当前处于待 QA 状态。
Release/PrivateVoice-Input-2.1.18-build20260601.1905/SHA256SUMS.txt
New file
@@ -0,0 +1,2 @@
ae26657fcdb0c1c8756b751833a634ddda01197f434418414d17902470dfbcbc  PrivateVoice Input-2.1.18-build20260601.1905-arm64-local.dmg
fb823c183df02f11413d12e4eb58cc04ed281de94936e7994af3e6837c6e1131  PrivateVoice Input-2.1.18-build20260601.1905-x86_64-local.dmg
Release/PrivateVoice-Input-2.1.19-build20260602.2022/RELEASE_MANIFEST.md
New file
@@ -0,0 +1,110 @@
# PrivateVoice Input 2.1.19 Build 20260602.2022 Release Manifest
## 基本信息
| 项目 | 内容 |
|---|---|
| package type | Round 1 QA 测试包 |
| product | PrivateVoice Input |
| version | 2.1.19 |
| build | 20260602.2022 |
| generated at | 2026-06-02 20:27:33 HKT |
| source branch | codex/round1-qa-package |
| source commit | f4194105fe06baa18f0145cc59e1914f96f2d4cb |
| baseline commit | 3fbceec8de833416bf1ae049f959f222c3f1a4a0 |
| release tag | v2.1.19-build20260602.2022 |
| worktree | /Users/ar/Projects/VoiceSnap-2.1.1-QA-build |
| signing identity | PrivateVoice Local Code Signing |
| notarization | none |
## 产物
| 架构 | 路径 | SHA256 |
|---|---|---|
| arm64 | `Release/PrivateVoice-Input-2.1.19-build20260602.2022/PrivateVoice Input-2.1.19-build20260602.2022-arm64-local.dmg` | `765e544ed88b6a33caf5231a5249efa9e08e2adee76c19ce55c1679b074361a2` |
| x86_64 | `Release/PrivateVoice-Input-2.1.19-build20260602.2022/PrivateVoice Input-2.1.19-build20260602.2022-x86_64-local.dmg` | `55be5da82cab427e4f6c27de7e79cd941153da18ce77e131eb3c0d4f905828e3` |
SHA 文件:
```text
Release/PrivateVoice-Input-2.1.19-build20260602.2022/SHA256SUMS.txt
```
构建日志:
```text
Release/PrivateVoice-Input-2.1.19-build20260602.2022/logs/build-arm64.log
Release/PrivateVoice-Input-2.1.19-build20260602.2022/logs/build-x86_64.log
```
## 构建环境
| 项目 | 内容 |
|---|---|
| macOS | 26.5 (25F71) |
| host arch | arm64 |
| Go | go1.26.3 darwin/arm64 |
| Node.js | v23.11.1 |
| npm | 10.9.2 |
## 源码冻结命令
```bash
git worktree add -b codex/round1-qa-package /Users/ar/Projects/VoiceSnap-2.1.1-QA-build 3fbceec
cd /Users/ar/Projects/VoiceSnap-2.1.1-QA-build
git commit -m "Prepare 2.1.19 Round 1 QA package"
```
源码冻结 commit:
```text
f4194105fe06baa18f0145cc59e1914f96f2d4cb
```
## 构建命令
```bash
cd /Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src
./scripts/build-local-macos.sh arm64
./scripts/build-local-macos.sh x86_64
```
## 验证命令
```bash
cd /Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/frontend
npm ci --prefer-offline
npm run build
cd /Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src
go test ./... -count=1
cd /Users/ar/Projects/VoiceSnap-2.1.1-QA-build
git diff --check
hdiutil verify "Release/PrivateVoice-Input-2.1.19-build20260602.2022/PrivateVoice Input-2.1.19-build20260602.2022-arm64-local.dmg"
hdiutil verify "Release/PrivateVoice-Input-2.1.19-build20260602.2022/PrivateVoice Input-2.1.19-build20260602.2022-x86_64-local.dmg"
codesign -vvv "Release/PrivateVoice-Input-2.1.19-build20260602.2022/PrivateVoice Input-2.1.19-build20260602.2022-arm64-local.dmg"
codesign -vvv "Release/PrivateVoice-Input-2.1.19-build20260602.2022/PrivateVoice Input-2.1.19-build20260602.2022-x86_64-local.dmg"
```
## 验证结论
已通过:
- 前端 `npm run build`。
- Go 全量测试 `go test ./... -count=1`。
- `git diff --check`。
- arm64 DMG `hdiutil verify`。
- x86_64 DMG `hdiutil verify`。
- arm64 DMG `codesign -vvv`。
- x86_64 DMG `codesign -vvv`。
- DMG 内容检查:两份镜像均包含 `PrivateVoice Input.app` 和 `Applications` 链接。
- App 元数据检查:`CFBundleShortVersionString=2.1.19`,`CFBundleVersion=20260602.2022`,`CFBundleIdentifier=com.privatevoice.input`。
## 已知残余风险
- 本包使用 `PrivateVoice Local Code Signing` 本地签名,没有 Developer ID 签名和 notarization,不应视为跨机器正式分发包。
- `npm ci` 报告 6 个依赖审计问题(3 moderate,3 high);本轮未升级依赖。
- 前端构建仍有既有 Svelte a11y warning,位于 `UpdateDialog.svelte` 和 `ToggleSwitch.svelte`。
- 构建日志中仍有 macOS 最低版本与部分依赖 dylib 的 linker warning;当前 App 元数据仍声明 `LSMinimumSystemVersion=11.0`,但 `libonnxruntime.1.23.2.dylib` 构建版本提示为 13.4,需后续单独确认最低系统版本策略。
- 正式 QA 尚未完成真实 SenseVoice 模型、麦克风权限、断网识别、replacement、历史写入、网络观察和 macOS 窗口/Dock smoke。
Release/PrivateVoice-Input-2.1.19-build20260602.2022/SHA256SUMS.txt
New file
@@ -0,0 +1,2 @@
765e544ed88b6a33caf5231a5249efa9e08e2adee76c19ce55c1679b074361a2  PrivateVoice Input-2.1.19-build20260602.2022-arm64-local.dmg
55be5da82cab427e4f6c27de7e79cd941153da18ce77e131eb3c0d4f905828e3  PrivateVoice Input-2.1.19-build20260602.2022-x86_64-local.dmg
Release/PrivateVoice-Input-2.1.19-build20260602.2022/logs/build-arm64.log
New file
@@ -0,0 +1,146 @@
==> Preflight checks
Using existing local signing identity: PrivateVoice Local Code Signing
==> Cleaning old local build
==> Building frontend
> privatevoice-input-frontend@2.1.19 build
> vite build
vite v6.4.1 building for production...
transforming...
8:25:16 PM [vite-plugin-svelte] src/components/update/UpdateDialog.svelte:28:0 Elements with the 'dialog' interactive role must have a tabindex value
https://svelte.dev/e/a11y_interactive_supports_focus
26:
27: <!-- svelte-ignore a11y_click_events_have_key_events -->
28: <div class="overlay" onclick={onclose} role="dialog">
          ^
29:   <!-- svelte-ignore a11y_click_events_have_key_events -->
30:   <div class="dialog" onclick={(e) => e.stopPropagation()} role="document">
8:25:16 PM [vite-plugin-svelte] src/components/update/UpdateDialog.svelte:30:2 Non-interactive element `<div>` should not be assigned mouse or keyboard event listeners
https://svelte.dev/e/a11y_no_noninteractive_element_interactions
28: <div class="overlay" onclick={onclose} role="dialog">
29:   <!-- svelte-ignore a11y_click_events_have_key_events -->
30:   <div class="dialog" onclick={(e) => e.stopPropagation()} role="document">
            ^
31:     <h2 class="title">{t('update.title')}</h2>
32:     <p class="version">{t('update.version', { version: info.version })}</p>
8:25:16 PM [vite-plugin-svelte] src/components/shared/ToggleSwitch.svelte:17:0 Buttons and links should either contain text or have an `aria-label`, `aria-labelledby` or `title` attribute
https://svelte.dev/e/a11y_consider_explicit_label
15: </script>
16:
17: <button
           ^
18:   class="toggle"
19:   class:active={checked}
✓ 163 modules transformed.
rendering chunks...
computing gzip size...
dist/index.html                      0.41 kB │ gzip:  0.28 kB
dist/assets/app-icon-Bs-pS5hx.png  400.98 kB
dist/assets/index-DAqIBjkZ.css      33.21 kB │ gzip:  5.70 kB
dist/assets/index-B-UiAvkI.js      133.36 kB │ gzip: 44.72 kB
✓ built in 442ms
==> Building Go binary (arm64)
# voicesnap
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/go.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000000.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000001.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000002.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000003.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000004.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000005.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000006.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000007.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000028.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000029.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000030.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000031.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000032.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000033.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000034.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000035.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000036.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000037.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000038.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000039.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000040.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000041.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000042.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000043.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000044.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000045.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000046.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000047.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000048.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000049.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000050.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000051.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000052.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000053.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000054.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-3535248902/000055.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: building for macOS-11.0, but linking with dylib '@rpath/libonnxruntime.1.23.2.dylib' which was built for newer version 13.4
==> Assembling PrivateVoice Input.app
==> Fixing rpaths
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool: warning: changes being made to the file will invalidate the code signature in: /Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/Frameworks/libonnxruntime.1.23.2.dylib
==> Code signing with stable local identity
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/Frameworks/libonnxruntime.1.23.2.dylib: replacing existing signature
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/Frameworks/libsherpa-onnx-c-api.dylib: replacing existing signature
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input: replacing existing signature
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/arm64/PrivateVoice Input.app: replacing existing signature
==> Verifying app signature
--prepared:/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/Frameworks/libsherpa-onnx-c-api.dylib
--validated:/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/Frameworks/libsherpa-onnx-c-api.dylib
--prepared:/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/Frameworks/libonnxruntime.1.23.2.dylib
--validated:/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/Frameworks/libonnxruntime.1.23.2.dylib
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/arm64/PrivateVoice Input.app: valid on disk
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/arm64/PrivateVoice Input.app: satisfies its Designated Requirement
Executable=/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input
Identifier=com.privatevoice.input
Format=app bundle with Mach-O thin (arm64)
CodeDirectory v=20500 size=28247 flags=0x10000(runtime) hashes=872+7 location=embedded
Signature size=1830
Authority=PrivateVoice Local Code Signing
Signed Time=Jun 2, 2026 at 20:25:20
Info.plist entries=12
TeamIdentifier=not set
Runtime Version=26.2.0
Sealed Resources version=2 rules=13 files=3
Internal requirements count=1 size=100
==> Creating DMG
created: /Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/arm64/PrivateVoice Input-2.1.19-build20260602.2022-arm64-local.dmg
==> Signing DMG
正在检查“Protective Master Boot Record(MBR:0)”的校验和…
Protective Master Boot Record(MBR:0):已验证CRC32 $33D050E1
正在检查“GPT Header(Primary GPT Header:1)”的校验和…
    GPT Header(Primary GPT Header:1):已验证CRC32 $BB8512E8
正在检查“GPT Partition Data(Primary GPT Table:2)”的校验和…
GPT Partition Data(Primary GPT Table:已验证CRC32 $8706F66B
正在检查“(Apple_Free:3)”的校验和…
                      (Apple_Free:3):已验证CRC32 $00000000
正在检查“disk image(Apple_APFS:4)”的校验和…
            disk image(Apple_APFS:4):已验证CRC32 $71823483
正在检查“(Apple_Free:5)”的校验和…
                      (Apple_Free:5):已验证CRC32 $00000000
正在检查“GPT Partition Data(Backup GPT Table:6)”的校验和…
GPT Partition Data(Backup GPT Table::已验证CRC32 $8706F66B
正在检查“GPT Header(Backup GPT Header:7)”的校验和…
     GPT Header(Backup GPT Header:7):已验证CRC32 $F24A6C74
已验证CRC32 $881B2254
hdiutil: verify: checksum of "/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/arm64/PrivateVoice Input-2.1.19-build20260602.2022-arm64-local.dmg" is VALID
==> Local build complete
  App: /Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/arm64/PrivateVoice Input.app
  DMG: /Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/arm64/PrivateVoice Input-2.1.19-build20260602.2022-arm64-local.dmg
  Compatibility DMG: /Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/arm64/PrivateVoice Input-2.1.19-arm64-local.dmg
  Signing identity: PrivateVoice Local Code Signing
Release/PrivateVoice-Input-2.1.19-build20260602.2022/logs/build-x86_64.log
New file
@@ -0,0 +1,145 @@
==> Preflight checks
Using existing local signing identity: PrivateVoice Local Code Signing
==> Cleaning old local build
==> Building frontend
> privatevoice-input-frontend@2.1.19 build
> vite build
vite v6.4.1 building for production...
transforming...
8:25:47 PM [vite-plugin-svelte] src/components/update/UpdateDialog.svelte:28:0 Elements with the 'dialog' interactive role must have a tabindex value
https://svelte.dev/e/a11y_interactive_supports_focus
26:
27: <!-- svelte-ignore a11y_click_events_have_key_events -->
28: <div class="overlay" onclick={onclose} role="dialog">
          ^
29:   <!-- svelte-ignore a11y_click_events_have_key_events -->
30:   <div class="dialog" onclick={(e) => e.stopPropagation()} role="document">
8:25:47 PM [vite-plugin-svelte] src/components/update/UpdateDialog.svelte:30:2 Non-interactive element `<div>` should not be assigned mouse or keyboard event listeners
https://svelte.dev/e/a11y_no_noninteractive_element_interactions
28: <div class="overlay" onclick={onclose} role="dialog">
29:   <!-- svelte-ignore a11y_click_events_have_key_events -->
30:   <div class="dialog" onclick={(e) => e.stopPropagation()} role="document">
            ^
31:     <h2 class="title">{t('update.title')}</h2>
32:     <p class="version">{t('update.version', { version: info.version })}</p>
8:25:47 PM [vite-plugin-svelte] src/components/shared/ToggleSwitch.svelte:17:0 Buttons and links should either contain text or have an `aria-label`, `aria-labelledby` or `title` attribute
https://svelte.dev/e/a11y_consider_explicit_label
15: </script>
16:
17: <button
           ^
18:   class="toggle"
19:   class:active={checked}
✓ 163 modules transformed.
rendering chunks...
computing gzip size...
dist/index.html                      0.41 kB │ gzip:  0.28 kB
dist/assets/app-icon-Bs-pS5hx.png  400.98 kB
dist/assets/index-DAqIBjkZ.css      33.21 kB │ gzip:  5.70 kB
dist/assets/index-B-UiAvkI.js      133.36 kB │ gzip: 44.72 kB
✓ built in 454ms
==> Building Go binary (x86_64)
# voicesnap
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/go.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000000.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000001.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000002.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000003.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000004.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000005.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000006.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000007.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000028.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000029.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000030.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000031.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000032.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000033.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000034.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000035.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000036.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000037.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000038.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000039.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000040.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000041.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000042.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000043.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000044.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000045.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000046.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000047.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000048.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000049.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000050.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000051.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000052.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000053.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000054.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-267578997/000055.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: building for macOS-10.13, but linking with dylib '@rpath/libsherpa-onnx-c-api.dylib' which was built for newer version 10.15
ld: warning: building for macOS-10.13, but linking with dylib '@rpath/libonnxruntime.1.23.2.dylib' which was built for newer version 13.4
==> Assembling PrivateVoice Input.app
==> Fixing rpaths
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool: warning: changes being made to the file will invalidate the code signature in: /Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/x86_64/PrivateVoice Input.app/Contents/Frameworks/libonnxruntime.1.23.2.dylib
==> Code signing with stable local identity
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/x86_64/PrivateVoice Input.app/Contents/Frameworks/libonnxruntime.1.23.2.dylib: replacing existing signature
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/x86_64/PrivateVoice Input.app: replacing existing signature
==> Verifying app signature
--prepared:/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/x86_64/PrivateVoice Input.app/Contents/Frameworks/libsherpa-onnx-c-api.dylib
--validated:/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/x86_64/PrivateVoice Input.app/Contents/Frameworks/libsherpa-onnx-c-api.dylib
--prepared:/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/x86_64/PrivateVoice Input.app/Contents/Frameworks/libonnxruntime.1.23.2.dylib
--validated:/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/x86_64/PrivateVoice Input.app/Contents/Frameworks/libonnxruntime.1.23.2.dylib
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/x86_64/PrivateVoice Input.app: valid on disk
/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/x86_64/PrivateVoice Input.app: satisfies its Designated Requirement
Executable=/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/x86_64/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input
Identifier=com.privatevoice.input
Format=app bundle with Mach-O thin (x86_64)
CodeDirectory v=20500 size=122007 flags=0x10000(runtime) hashes=3802+7 location=embedded
Signature size=1830
Authority=PrivateVoice Local Code Signing
Signed Time=Jun 2, 2026 at 20:25:51
Info.plist entries=12
TeamIdentifier=not set
Runtime Version=26.2.0
Sealed Resources version=2 rules=13 files=3
Internal requirements count=1 size=100
==> Creating DMG
created: /Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/x86_64/PrivateVoice Input-2.1.19-build20260602.2022-x86_64-local.dmg
==> Signing DMG
正在检查“Protective Master Boot Record(MBR:0)”的校验和…
Protective Master Boot Record(MBR:0):已验证CRC32 $5F04DB33
正在检查“GPT Header(Primary GPT Header:1)”的校验和…
    GPT Header(Primary GPT Header:1):已验证CRC32 $E584EF4F
正在检查“GPT Partition Data(Primary GPT Table:2)”的校验和…
GPT Partition Data(Primary GPT Table:已验证CRC32 $04FB7485
正在检查“(Apple_Free:3)”的校验和…
                      (Apple_Free:3):已验证CRC32 $00000000
正在检查“disk image(Apple_APFS:4)”的校验和…
            disk image(Apple_APFS:4):已验证CRC32 $B21E894F
正在检查“(Apple_Free:5)”的校验和…
                      (Apple_Free:5):已验证CRC32 $00000000
正在检查“GPT Partition Data(Backup GPT Table:6)”的校验和…
GPT Partition Data(Backup GPT Table::已验证CRC32 $04FB7485
正在检查“GPT Header(Backup GPT Header:7)”的校验和…
     GPT Header(Backup GPT Header:7):已验证CRC32 $CFB41D18
已验证CRC32 $50FB2202
hdiutil: verify: checksum of "/Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/x86_64/PrivateVoice Input-2.1.19-build20260602.2022-x86_64-local.dmg" is VALID
==> Local build complete
  App: /Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/x86_64/PrivateVoice Input.app
  DMG: /Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/x86_64/PrivateVoice Input-2.1.19-build20260602.2022-x86_64-local.dmg
  Compatibility DMG: /Users/ar/Projects/VoiceSnap-2.1.1-QA-build/privatevoice.src/build/local/x86_64/PrivateVoice Input-2.1.19-x86_64-local.dmg
  Signing identity: PrivateVoice Local Code Signing
Release/PrivateVoice-Input-2.1.20-build20260603.1145/RELEASE_MANIFEST.md
New file
@@ -0,0 +1,128 @@
# PrivateVoice Input 2.1.20 Build 20260603.1145 Release Manifest
## 基本信息
| 项目 | 内容 |
|---|---|
| package type | Round 2 QA 通过测试包 |
| product | PrivateVoice Input |
| version | 2.1.20 |
| build | 20260603.1145 |
| generated at | 2026-06-03 11:54:00 HKT |
| source branch | codex/round2-language-settings |
| source commit | f66a79670c444010a59b8513c9f61257ebc7d9b6 |
| baseline commit | f4194105fe06baa18f0145cc59e1914f96f2d4cb |
| release tag | v2.1.20-build20260603.1145 |
| worktree | /Users/ar/Projects/VoiceSnap-2.1.1-Round2 |
| signing identity | PrivateVoice Local Code Signing |
| notarization | none |
## 产物
| 架构 | 路径 | SHA256 |
|---|---|---|
| arm64 | `Release/PrivateVoice-Input-2.1.20-build20260603.1145/PrivateVoice Input-2.1.20-build20260603.1145-arm64-local.dmg` | `5e321004afb61153fb82e5ef58698d5487e5dd089bf0aaa0ba482e657ed3a4ec` |
| x86_64 | `Release/PrivateVoice-Input-2.1.20-build20260603.1145/PrivateVoice Input-2.1.20-build20260603.1145-x86_64-local.dmg` | `cac25e70e9375610f122e6a8ee3d9813acf0dee23054b6402cd3e5e575d5f1fd` |
SHA 文件:
```text
Release/PrivateVoice-Input-2.1.20-build20260603.1145/SHA256SUMS.txt
```
构建日志:
```text
Release/PrivateVoice-Input-2.1.20-build20260603.1145/logs/build-arm64.log
Release/PrivateVoice-Input-2.1.20-build20260603.1145/logs/build-x86_64.log
Release/PrivateVoice-Input-2.1.20-build20260603.1145/logs/verify-dmgs.log
```
QA 报告:
```text
02-P-NBL/round-2/qa-report-current.md
```
## 构建环境
| 项目 | 内容 |
|---|---|
| macOS | 26.5 (25F71) |
| host arch | arm64 |
| Go | go1.26.3 darwin/arm64 |
| Node.js | v23.11.1 |
| npm | 10.9.2 |
## 源码冻结命令
```bash
cd /Users/ar/Projects/VoiceSnap-2.1.1-Round2
git commit -m "Prepare 2.1.20 Round 2 QA package"
```
源码冻结 commit:
```text
f66a79670c444010a59b8513c9f61257ebc7d9b6
```
## 构建命令
```bash
cd /Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src
./scripts/build-local-macos.sh arm64
./scripts/build-local-macos.sh x86_64
```
## 验证命令
```bash
cd /Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/frontend
npm run build
cd /Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src
go test ./... -count=1
cd /Users/ar/Projects/VoiceSnap-2.1.1-Round2
git diff --check
hdiutil verify "Release/PrivateVoice-Input-2.1.20-build20260603.1145/PrivateVoice Input-2.1.20-build20260603.1145-arm64-local.dmg"
hdiutil verify "Release/PrivateVoice-Input-2.1.20-build20260603.1145/PrivateVoice Input-2.1.20-build20260603.1145-x86_64-local.dmg"
codesign -vvv "Release/PrivateVoice-Input-2.1.20-build20260603.1145/PrivateVoice Input-2.1.20-build20260603.1145-arm64-local.dmg"
codesign -vvv "Release/PrivateVoice-Input-2.1.20-build20260603.1145/PrivateVoice Input-2.1.20-build20260603.1145-x86_64-local.dmg"
```
## 验证结论
已通过:
- 前端 `npm run build`。
- Go 全量测试 `go test ./... -count=1`。
- `git diff --check`。
- arm64 DMG `hdiutil verify`。
- x86_64 DMG `hdiutil verify`。
- arm64 DMG `codesign -vvv`。
- x86_64 DMG `codesign -vvv`。
- DMG 内容检查:两份镜像均包含 `PrivateVoice Input.app` 和 `Applications` 链接。
- App 元数据检查:`CFBundleShortVersionString=2.1.20`,`CFBundleVersion=20260603.1145`,`CFBundleIdentifier=com.privatevoice.input`。
- Round 2 功能性 QA PASS:语言切换、重启持久化、老用户数据保护、新用户临时 HOME、断网启动、断网真实语音输入均通过。
## 用户验收
2026-06-03,用户确认完成以下 6 项验收,且全部符合预期:
- 安装 arm64 测试包并覆盖旧版。
- 关于页版本显示为 `2.1.20 build 20260603.1145`。
- 设置页“语言版本”支持 `自动 / 中文 / English`,切换后 UI 文案立即变化。
- 推理引擎仍为 `SenseVoice · CoreML (Apple Neural Engine)`,未出现 Moonshine / Parakeet / Qwen3-ASR,未重新下载模型。
- 语言选择重启后保持。
- `R-Alt` 真实语音输入可用,历史记录正常写入。
结论:Round 2 用户验收 PASS。
## 已知残余风险
- 本包使用 `PrivateVoice Local Code Signing` 本地签名,没有 Developer ID 签名和 notarization,不应视为跨机器正式分发包。
- `npm ci` 既有依赖审计问题本轮未处理;本轮仅执行 `npm run build`。
- 前端构建仍有既有 Svelte a11y warning,位于 `UpdateDialog.svelte` 和 `ToggleSwitch.svelte`。
- 构建日志中仍有 macOS 最低版本与部分依赖 dylib 的 linker warning;当前 App 元数据仍声明 `LSMinimumSystemVersion=11.0`,但 `libonnxruntime.1.23.2.dylib` 构建版本提示为 13.4,需后续单独确认最低系统版本策略。
Release/PrivateVoice-Input-2.1.20-build20260603.1145/SHA256SUMS.txt
New file
@@ -0,0 +1,2 @@
5e321004afb61153fb82e5ef58698d5487e5dd089bf0aaa0ba482e657ed3a4ec  PrivateVoice Input-2.1.20-build20260603.1145-arm64-local.dmg
cac25e70e9375610f122e6a8ee3d9813acf0dee23054b6402cd3e5e575d5f1fd  PrivateVoice Input-2.1.20-build20260603.1145-x86_64-local.dmg
Release/PrivateVoice-Input-2.1.20-build20260603.1145/logs/build-arm64.log
New file
@@ -0,0 +1,144 @@
==> Preflight checks
Using existing local signing identity: PrivateVoice Local Code Signing
==> Cleaning old local build
==> Building frontend
> privatevoice-input-frontend@2.1.20 build
> vite build
vite v6.4.1 building for production...
transforming...
11:51:36 AM [vite-plugin-svelte] src/components/update/UpdateDialog.svelte:28:0 Elements with the 'dialog' interactive role must have a tabindex value
https://svelte.dev/e/a11y_interactive_supports_focus
26:
27: <!-- svelte-ignore a11y_click_events_have_key_events -->
28: <div class="overlay" onclick={onclose} role="dialog">
          ^
29:   <!-- svelte-ignore a11y_click_events_have_key_events -->
30:   <div class="dialog" onclick={(e) => e.stopPropagation()} role="document">
11:51:36 AM [vite-plugin-svelte] src/components/update/UpdateDialog.svelte:30:2 Non-interactive element `<div>` should not be assigned mouse or keyboard event listeners
https://svelte.dev/e/a11y_no_noninteractive_element_interactions
28: <div class="overlay" onclick={onclose} role="dialog">
29:   <!-- svelte-ignore a11y_click_events_have_key_events -->
30:   <div class="dialog" onclick={(e) => e.stopPropagation()} role="document">
            ^
31:     <h2 class="title">{t('update.title')}</h2>
32:     <p class="version">{t('update.version', { version: info.version })}</p>
11:51:36 AM [vite-plugin-svelte] src/components/shared/ToggleSwitch.svelte:17:0 Buttons and links should either contain text or have an `aria-label`, `aria-labelledby` or `title` attribute
https://svelte.dev/e/a11y_consider_explicit_label
15: </script>
16:
17: <button
           ^
18:   class="toggle"
19:   class:active={checked}
✓ 163 modules transformed.
rendering chunks...
computing gzip size...
dist/index.html                      0.41 kB │ gzip:  0.28 kB
dist/assets/app-icon-Bs-pS5hx.png  400.98 kB
dist/assets/index-p3GQqwqB.css      33.39 kB │ gzip:  5.73 kB
dist/assets/index-yZ25Q-mY.js      137.08 kB │ gzip: 45.83 kB
✓ built in 492ms
==> Building Go binary (arm64)
# voicesnap
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/go.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000000.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000001.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000002.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000003.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000004.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000005.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000006.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000007.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000028.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000029.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000030.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000031.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000032.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000033.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000034.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000035.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000036.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000037.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000038.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000039.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000040.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000041.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000042.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000043.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000044.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000045.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000046.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000047.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000048.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000049.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000050.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000051.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000052.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000053.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000054.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-2695112876/000055.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: building for macOS-11.0, but linking with dylib '@rpath/libonnxruntime.1.23.2.dylib' which was built for newer version 13.4
==> Assembling PrivateVoice Input.app
==> Fixing rpaths
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool: warning: changes being made to the file will invalidate the code signature in: /Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/Frameworks/libonnxruntime.1.23.2.dylib
==> Code signing with stable local identity
/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/Frameworks/libonnxruntime.1.23.2.dylib: replacing existing signature
/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/Frameworks/libsherpa-onnx-c-api.dylib: replacing existing signature
/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input: replacing existing signature
/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app: replacing existing signature
==> Verifying app signature
--prepared:/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/Frameworks/libsherpa-onnx-c-api.dylib
--validated:/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/Frameworks/libsherpa-onnx-c-api.dylib
--prepared:/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/Frameworks/libonnxruntime.1.23.2.dylib
--validated:/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/Frameworks/libonnxruntime.1.23.2.dylib
/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app: valid on disk
/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app: satisfies its Designated Requirement
Executable=/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input
Identifier=com.privatevoice.input
Format=app bundle with Mach-O thin (arm64)
CodeDirectory v=20500 size=28279 flags=0x10000(runtime) hashes=873+7 location=embedded
Signature size=1830
Authority=PrivateVoice Local Code Signing
Signed Time=Jun 3, 2026 at 11:51:39
Info.plist entries=12
TeamIdentifier=not set
Runtime Version=26.2.0
Sealed Resources version=2 rules=13 files=3
Internal requirements count=1 size=100
==> Creating DMG
created: /Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input-2.1.20-build20260603.1145-arm64-local.dmg
==> Signing DMG
正在检查“Protective Master Boot Record(MBR:0)”的校验和…
Protective Master Boot Record(MBR:0):已验证CRC32 $1721BF9F
正在检查“GPT Header(Primary GPT Header:1)”的校验和…
    GPT Header(Primary GPT Header:1):已验证CRC32 $590C3EED
正在检查“GPT Partition Data(Primary GPT Table:2)”的校验和…
GPT Partition Data(Primary GPT Table:已验证CRC32 $DB4DB4C1
正在检查“(Apple_Free:3)”的校验和…
                      (Apple_Free:3):已验证CRC32 $00000000
正在检查“disk image(Apple_APFS:4)”的校验和…
            disk image(Apple_APFS:4):已验证CRC32 $A4673B2A
正在检查“GPT Partition Data(Backup GPT Table:5)”的校验和…
GPT Partition Data(Backup GPT Table::已验证CRC32 $DB4DB4C1
正在检查“GPT Header(Backup GPT Header:6)”的校验和…
     GPT Header(Backup GPT Header:6):已验证CRC32 $9EF81A60
已验证CRC32 $4C335541
hdiutil: verify: checksum of "/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input-2.1.20-build20260603.1145-arm64-local.dmg" is VALID
==> Local build complete
  App: /Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input.app
  DMG: /Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input-2.1.20-build20260603.1145-arm64-local.dmg
  Compatibility DMG: /Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/arm64/PrivateVoice Input-2.1.20-arm64-local.dmg
  Signing identity: PrivateVoice Local Code Signing
Release/PrivateVoice-Input-2.1.20-build20260603.1145/logs/build-x86_64.log
New file
@@ -0,0 +1,145 @@
==> Preflight checks
Using existing local signing identity: PrivateVoice Local Code Signing
==> Cleaning old local build
==> Building frontend
> privatevoice-input-frontend@2.1.20 build
> vite build
vite v6.4.1 building for production...
transforming...
11:52:35 AM [vite-plugin-svelte] src/components/update/UpdateDialog.svelte:28:0 Elements with the 'dialog' interactive role must have a tabindex value
https://svelte.dev/e/a11y_interactive_supports_focus
26:
27: <!-- svelte-ignore a11y_click_events_have_key_events -->
28: <div class="overlay" onclick={onclose} role="dialog">
          ^
29:   <!-- svelte-ignore a11y_click_events_have_key_events -->
30:   <div class="dialog" onclick={(e) => e.stopPropagation()} role="document">
11:52:35 AM [vite-plugin-svelte] src/components/update/UpdateDialog.svelte:30:2 Non-interactive element `<div>` should not be assigned mouse or keyboard event listeners
https://svelte.dev/e/a11y_no_noninteractive_element_interactions
28: <div class="overlay" onclick={onclose} role="dialog">
29:   <!-- svelte-ignore a11y_click_events_have_key_events -->
30:   <div class="dialog" onclick={(e) => e.stopPropagation()} role="document">
            ^
31:     <h2 class="title">{t('update.title')}</h2>
32:     <p class="version">{t('update.version', { version: info.version })}</p>
11:52:36 AM [vite-plugin-svelte] src/components/shared/ToggleSwitch.svelte:17:0 Buttons and links should either contain text or have an `aria-label`, `aria-labelledby` or `title` attribute
https://svelte.dev/e/a11y_consider_explicit_label
15: </script>
16:
17: <button
           ^
18:   class="toggle"
19:   class:active={checked}
✓ 163 modules transformed.
rendering chunks...
computing gzip size...
dist/index.html                      0.41 kB │ gzip:  0.28 kB
dist/assets/app-icon-Bs-pS5hx.png  400.98 kB
dist/assets/index-p3GQqwqB.css      33.39 kB │ gzip:  5.73 kB
dist/assets/index-yZ25Q-mY.js      137.08 kB │ gzip: 45.83 kB
✓ built in 463ms
==> Building Go binary (x86_64)
# voicesnap
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/go.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000000.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000001.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000002.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000003.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000004.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000005.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000006.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000007.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000028.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000029.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000030.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000031.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000032.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000033.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000034.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000035.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000036.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000037.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000038.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000039.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000040.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000041.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000042.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000043.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000044.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000045.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000046.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000047.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000048.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000049.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000050.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000051.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000052.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000053.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000054.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1877181218/000055.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: building for macOS-10.13, but linking with dylib '@rpath/libsherpa-onnx-c-api.dylib' which was built for newer version 10.15
ld: warning: building for macOS-10.13, but linking with dylib '@rpath/libonnxruntime.1.23.2.dylib' which was built for newer version 13.4
==> Assembling PrivateVoice Input.app
==> Fixing rpaths
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool: warning: changes being made to the file will invalidate the code signature in: /Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/x86_64/PrivateVoice Input.app/Contents/Frameworks/libonnxruntime.1.23.2.dylib
==> Code signing with stable local identity
/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/x86_64/PrivateVoice Input.app/Contents/Frameworks/libonnxruntime.1.23.2.dylib: replacing existing signature
/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/x86_64/PrivateVoice Input.app: replacing existing signature
==> Verifying app signature
--prepared:/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/x86_64/PrivateVoice Input.app/Contents/Frameworks/libsherpa-onnx-c-api.dylib
--validated:/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/x86_64/PrivateVoice Input.app/Contents/Frameworks/libsherpa-onnx-c-api.dylib
--prepared:/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/x86_64/PrivateVoice Input.app/Contents/Frameworks/libonnxruntime.1.23.2.dylib
--validated:/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/x86_64/PrivateVoice Input.app/Contents/Frameworks/libonnxruntime.1.23.2.dylib
/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/x86_64/PrivateVoice Input.app: valid on disk
/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/x86_64/PrivateVoice Input.app: satisfies its Designated Requirement
Executable=/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/x86_64/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input
Identifier=com.privatevoice.input
Format=app bundle with Mach-O thin (x86_64)
CodeDirectory v=20500 size=122167 flags=0x10000(runtime) hashes=3807+7 location=embedded
Signature size=1830
Authority=PrivateVoice Local Code Signing
Signed Time=Jun 3, 2026 at 11:52:41
Info.plist entries=12
TeamIdentifier=not set
Runtime Version=26.2.0
Sealed Resources version=2 rules=13 files=3
Internal requirements count=1 size=100
==> Creating DMG
created: /Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/x86_64/PrivateVoice Input-2.1.20-build20260603.1145-x86_64-local.dmg
==> Signing DMG
正在检查“Protective Master Boot Record(MBR:0)”的校验和…
Protective Master Boot Record(MBR:0):已验证CRC32 $600A069B
正在检查“GPT Header(Primary GPT Header:1)”的校验和…
    GPT Header(Primary GPT Header:1):已验证CRC32 $15E9C1B9
正在检查“GPT Partition Data(Primary GPT Table:2)”的校验和…
GPT Partition Data(Primary GPT Table:已验证CRC32 $AA2A8826
正在检查“(Apple_Free:3)”的校验和…
                      (Apple_Free:3):已验证CRC32 $00000000
正在检查“disk image(Apple_APFS:4)”的校验和…
            disk image(Apple_APFS:4):已验证CRC32 $71F5DCBD
正在检查“(Apple_Free:5)”的校验和…
                      (Apple_Free:5):已验证CRC32 $00000000
正在检查“GPT Partition Data(Backup GPT Table:6)”的校验和…
GPT Partition Data(Backup GPT Table::已验证CRC32 $AA2A8826
正在检查“GPT Header(Backup GPT Header:7)”的校验和…
     GPT Header(Backup GPT Header:7):已验证CRC32 $EC94F2EE
已验证CRC32 $174EA245
hdiutil: verify: checksum of "/Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/x86_64/PrivateVoice Input-2.1.20-build20260603.1145-x86_64-local.dmg" is VALID
==> Local build complete
  App: /Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/x86_64/PrivateVoice Input.app
  DMG: /Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/x86_64/PrivateVoice Input-2.1.20-build20260603.1145-x86_64-local.dmg
  Compatibility DMG: /Users/ar/Projects/VoiceSnap-2.1.1-Round2/privatevoice.src/build/local/x86_64/PrivateVoice Input-2.1.20-x86_64-local.dmg
  Signing identity: PrivateVoice Local Code Signing
Release/PrivateVoice-Input-2.1.20-build20260603.1145/logs/verify-dmgs.log
New file
@@ -0,0 +1,60 @@
== PrivateVoice Input-2.1.20-build20260603.1145-arm64-local.dmg ==
正在检查“Protective Master Boot Record(MBR:0)”的校验和…
Protective Master Boot Record(MBR:0):已验证CRC32 $1721BF9F
正在检查“GPT Header(Primary GPT Header:1)”的校验和…
    GPT Header(Primary GPT Header:1):已验证CRC32 $590C3EED
正在检查“GPT Partition Data(Primary GPT Table:2)”的校验和…
GPT Partition Data(Primary GPT Table:已验证CRC32 $DB4DB4C1
正在检查“(Apple_Free:3)”的校验和…
                      (Apple_Free:3):已验证CRC32 $00000000
正在检查“disk image(Apple_APFS:4)”的校验和…
            disk image(Apple_APFS:4):已验证CRC32 $A4673B2A
正在检查“GPT Partition Data(Backup GPT Table:5)”的校验和…
GPT Partition Data(Backup GPT Table::已验证CRC32 $DB4DB4C1
正在检查“GPT Header(Backup GPT Header:6)”的校验和…
     GPT Header(Backup GPT Header:6):已验证CRC32 $9EF81A60
已验证CRC32 $4C335541
hdiutil: verify: checksum of "/Users/ar/Projects/VoiceSnap-2.1.1-Round2/Release/PrivateVoice-Input-2.1.20-build20260603.1145/PrivateVoice Input-2.1.20-build20260603.1145-arm64-local.dmg" is VALID
/Users/ar/Projects/VoiceSnap-2.1.1-Round2/Release/PrivateVoice-Input-2.1.20-build20260603.1145/PrivateVoice Input-2.1.20-build20260603.1145-arm64-local.dmg: valid on disk
/Users/ar/Projects/VoiceSnap-2.1.1-Round2/Release/PrivateVoice-Input-2.1.20-build20260603.1145/PrivateVoice Input-2.1.20-build20260603.1145-arm64-local.dmg: satisfies its Designated Requirement
预计CRC32 $4C335541
/dev/disk11             GUID_partition_scheme
/dev/disk11s1           Apple_APFS
/dev/disk12             EF57347C-0000-11AA-AA11-0030654
/dev/disk12s1           41504653-0000-11AA-AA11-0030654    /private/tmp/privatevoice-dmg.CfSGaN
contents:
/tmp/privatevoice-dmg.CfSGaN
/tmp/privatevoice-dmg.CfSGaN/PrivateVoice Input.app
/tmp/privatevoice-dmg.CfSGaN/Applications
"disk11" ejected.
== PrivateVoice Input-2.1.20-build20260603.1145-x86_64-local.dmg ==
正在检查“Protective Master Boot Record(MBR:0)”的校验和…
Protective Master Boot Record(MBR:0):已验证CRC32 $600A069B
正在检查“GPT Header(Primary GPT Header:1)”的校验和…
    GPT Header(Primary GPT Header:1):已验证CRC32 $15E9C1B9
正在检查“GPT Partition Data(Primary GPT Table:2)”的校验和…
GPT Partition Data(Primary GPT Table:已验证CRC32 $AA2A8826
正在检查“(Apple_Free:3)”的校验和…
                      (Apple_Free:3):已验证CRC32 $00000000
正在检查“disk image(Apple_APFS:4)”的校验和…
            disk image(Apple_APFS:4):已验证CRC32 $71F5DCBD
正在检查“(Apple_Free:5)”的校验和…
                      (Apple_Free:5):已验证CRC32 $00000000
正在检查“GPT Partition Data(Backup GPT Table:6)”的校验和…
GPT Partition Data(Backup GPT Table::已验证CRC32 $AA2A8826
正在检查“GPT Header(Backup GPT Header:7)”的校验和…
     GPT Header(Backup GPT Header:7):已验证CRC32 $EC94F2EE
已验证CRC32 $174EA245
hdiutil: verify: checksum of "/Users/ar/Projects/VoiceSnap-2.1.1-Round2/Release/PrivateVoice-Input-2.1.20-build20260603.1145/PrivateVoice Input-2.1.20-build20260603.1145-x86_64-local.dmg" is VALID
/Users/ar/Projects/VoiceSnap-2.1.1-Round2/Release/PrivateVoice-Input-2.1.20-build20260603.1145/PrivateVoice Input-2.1.20-build20260603.1145-x86_64-local.dmg: valid on disk
/Users/ar/Projects/VoiceSnap-2.1.1-Round2/Release/PrivateVoice-Input-2.1.20-build20260603.1145/PrivateVoice Input-2.1.20-build20260603.1145-x86_64-local.dmg: satisfies its Designated Requirement
预计CRC32 $174EA245
/dev/disk11             GUID_partition_scheme
/dev/disk11s1           Apple_APFS
/dev/disk12             EF57347C-0000-11AA-AA11-0030654
/dev/disk12s1           41504653-0000-11AA-AA11-0030654    /private/tmp/privatevoice-dmg.dqXHHL
contents:
/tmp/privatevoice-dmg.dqXHHL
/tmp/privatevoice-dmg.dqXHHL/PrivateVoice Input.app
/tmp/privatevoice-dmg.dqXHHL/Applications
"disk11" ejected.
Release/PrivateVoice-Input-2.1.21-build20260603.1327/RELEASE_MANIFEST.md
New file
@@ -0,0 +1,88 @@
# PrivateVoice Input 2.1.21 build20260603.1327
## 包类型
Round 3 正式可回滚测试包 / QA 候选包。
本包用于验证英文语言版本默认安装 Moonshine English,并保持中文语言版本默认 SenseVoice 的 Round 3 需求。
## 版本信息
- Product: PrivateVoice Input
- Version: 2.1.21
- Build: 20260603.1327
- 生成时间: 2026-06-03 13:33:42 HKT
- 执行代理: Codex
## Git 基线
- Repository: `/Users/ar/Projects/VoiceSnap-2.1.1-Round3`
- Branch: `codex/round3-moonshine-english`
- Commit: `678bd460610d80d0a11ce8910a73fe95d00073f5`
- Tag: `v2.1.21-build20260603.1327`
## 构建命令
```bash
cd /Users/ar/Projects/VoiceSnap-2.1.1-Round3/privatevoice.src
./scripts/build-local-macos.sh arm64
./scripts/build-local-macos.sh x86_64
```
## 验证命令
```bash
cd /Users/ar/Projects/VoiceSnap-2.1.1-Round3/privatevoice.src
npm run build
go test ./... -count=1
git diff --check
cd /Users/ar/Projects/VoiceSnap-2.1.1-Round3
codesign -vvv --deep --strict "privatevoice.src/build/local/arm64/PrivateVoice Input.app"
codesign -vvv --deep --strict "privatevoice.src/build/local/x86_64/PrivateVoice Input.app"
hdiutil verify "Release/PrivateVoice-Input-2.1.21-build20260603.1327/PrivateVoice Input-2.1.21-build20260603.1327-arm64-local.dmg"
hdiutil verify "Release/PrivateVoice-Input-2.1.21-build20260603.1327/PrivateVoice Input-2.1.21-build20260603.1327-x86_64-local.dmg"
shasum -a 256 "Release/PrivateVoice-Input-2.1.21-build20260603.1327/"*.dmg
# 临时 QA 测试,不进入正式源码:
# 使用临时模型目录调用 model.DownloadProfile(moonshine-en),随后调用 engine.NewWithResolvedModel。
```
## 产物
| 架构 | 文件 | 大小 | SHA256 |
| --- | --- | ---: | --- |
| arm64 | `PrivateVoice Input-2.1.21-build20260603.1327-arm64-local.dmg` | 19M | `4f4949fd4f72e27b4a20133e279020496cddca7ad80fcfb0b280cb945b3d643e` |
| x86_64 | `PrivateVoice Input-2.1.21-build20260603.1327-x86_64-local.dmg` | 22M | `0270c58ebd64a8db9355ff867efa97ec3c2343fe2e3bcbc7e50a3e15590d27dc` |
## 验证结果
- `npm run build`: PASS。存在既有 Svelte a11y warning,非 Round 3 新增阻断项。
- `go test ./... -count=1`: PASS。
- `git diff --check`: PASS。
- arm64 app `codesign -vvv --deep --strict`: PASS。
- x86_64 app `codesign -vvv --deep --strict`: PASS。
- arm64 DMG `hdiutil verify`: VALID。
- x86_64 DMG `hdiutil verify`: VALID。
- Moonshine English 真实下载、解包、模型结构验证、sherpa-onnx 引擎加载: PASS。
  - 下载 URL: `https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-moonshine-base-en-int8.tar.bz2`
  - 下载体积: `250807309` bytes。
  - 加载结果: `Engine initialized: Moonshine English · CPU`。
## 日志
- `logs/build-arm64.log`
- `logs/build-x86_64.log`
- `logs/verify-dmgs.log`
- `logs/moonshine-download-load.log`
- `SHA256SUMS.txt`
## QA 范围
本包已经完成自动化、打包门禁和 Moonshine 真实下载/加载验证。仍需真实使用 QA 验证:
- 英文环境或手动切换 English 后,默认模型为 Moonshine English。
- Moonshine English 下载成功后,可加载并识别英文。
- 断网后英文识别仍可工作。
- 中文环境或手动切换简体中文后,仍默认使用 SenseVoice。
- 中英文切换时,缺模型提示、下载状态、重载行为符合 Round 3 PRD。
Release/PrivateVoice-Input-2.1.21-build20260603.1327/SHA256SUMS.txt
New file
@@ -0,0 +1,2 @@
4f4949fd4f72e27b4a20133e279020496cddca7ad80fcfb0b280cb945b3d643e  PrivateVoice Input-2.1.21-build20260603.1327-arm64-local.dmg
0270c58ebd64a8db9355ff867efa97ec3c2343fe2e3bcbc7e50a3e15590d27dc  PrivateVoice Input-2.1.21-build20260603.1327-x86_64-local.dmg
Release/PrivateVoice-Input-2.1.21-build20260603.1327/logs/build-arm64.log
New file
@@ -0,0 +1,130 @@
==> Preflight checks
Using existing local signing identity: PrivateVoice Local Code Signing
==> Cleaning old local build
==> Building frontend
> privatevoice-input-frontend@2.1.21 build
> vite build
vite v6.4.1 building for production...
transforming...
1:32:58 PM [vite-plugin-svelte] src/components/update/UpdateDialog.svelte:28:0 Elements with the 'dialog' interactive role must have a tabindex value
https://svelte.dev/e/a11y_interactive_supports_focus
26:
27: <!-- svelte-ignore a11y_click_events_have_key_events -->
28: <div class="overlay" onclick={onclose} role="dialog">
          ^
29:   <!-- svelte-ignore a11y_click_events_have_key_events -->
30:   <div class="dialog" onclick={(e) => e.stopPropagation()} role="document">
1:32:58 PM [vite-plugin-svelte] src/components/update/UpdateDialog.svelte:30:2 Non-interactive element `<div>` should not be assigned mouse or keyboard event listeners
https://svelte.dev/e/a11y_no_noninteractive_element_interactions
28: <div class="overlay" onclick={onclose} role="dialog">
29:   <!-- svelte-ignore a11y_click_events_have_key_events -->
30:   <div class="dialog" onclick={(e) => e.stopPropagation()} role="document">
            ^
31:     <h2 class="title">{t('update.title')}</h2>
32:     <p class="version">{t('update.version', { version: info.version })}</p>
1:32:59 PM [vite-plugin-svelte] src/components/shared/ToggleSwitch.svelte:17:0 Buttons and links should either contain text or have an `aria-label`, `aria-labelledby` or `title` attribute
https://svelte.dev/e/a11y_consider_explicit_label
15: </script>
16:
17: <button
           ^
18:   class="toggle"
19:   class:active={checked}
✓ 163 modules transformed.
rendering chunks...
computing gzip size...
dist/index.html                      0.41 kB │ gzip:  0.28 kB
dist/assets/app-icon-Bs-pS5hx.png  400.98 kB
dist/assets/index-p3GQqwqB.css      33.39 kB │ gzip:  5.73 kB
dist/assets/index-CWMyDHKt.js      137.34 kB │ gzip: 45.94 kB
✓ built in 1.28s
==> Building Go binary (arm64)
# voicesnap
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/go.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000000.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000001.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000002.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000003.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000004.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000005.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000006.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000007.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000028.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000029.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000030.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000031.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000032.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000033.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000034.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000035.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000036.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000037.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000038.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000039.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000040.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000041.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000042.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000043.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000044.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000045.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000046.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000047.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000048.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000049.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000050.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000051.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000052.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000053.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000054.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-1292996650/000055.o) was built for newer 'macOS' version (26.0) than being linked (11.0)
ld: warning: building for macOS-11.0, but linking with dylib '@rpath/libonnxruntime.1.23.2.dylib' which was built for newer version 13.4
==> Assembling PrivateVoice Input.app
==> Fixing rpaths
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool: warning: changes being made to the file will invalidate the code signature in: /Users/ar/Projects/VoiceSnap-2.1.1-Round3/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/Frameworks/libonnxruntime.1.23.2.dylib
==> Code signing with stable local identity
/Users/ar/Projects/VoiceSnap-2.1.1-Round3/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/Frameworks/libonnxruntime.1.23.2.dylib: replacing existing signature
/Users/ar/Projects/VoiceSnap-2.1.1-Round3/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/Frameworks/libsherpa-onnx-c-api.dylib: replacing existing signature
/Users/ar/Projects/VoiceSnap-2.1.1-Round3/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input: replacing existing signature
/Users/ar/Projects/VoiceSnap-2.1.1-Round3/privatevoice.src/build/local/arm64/PrivateVoice Input.app: replacing existing signature
==> Verifying app signature
--prepared:/Users/ar/Projects/VoiceSnap-2.1.1-Round3/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/Frameworks/libsherpa-onnx-c-api.dylib
--validated:/Users/ar/Projects/VoiceSnap-2.1.1-Round3/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/Frameworks/libsherpa-onnx-c-api.dylib
--prepared:/Users/ar/Projects/VoiceSnap-2.1.1-Round3/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/Frameworks/libonnxruntime.1.23.2.dylib
--validated:/Users/ar/Projects/VoiceSnap-2.1.1-Round3/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/Frameworks/libonnxruntime.1.23.2.dylib
/Users/ar/Projects/VoiceSnap-2.1.1-Round3/privatevoice.src/build/local/arm64/PrivateVoice Input.app: valid on disk
/Users/ar/Projects/VoiceSnap-2.1.1-Round3/privatevoice.src/build/local/arm64/PrivateVoice Input.app: satisfies its Designated Requirement
Executable=/Users/ar/Projects/VoiceSnap-2.1.1-Round3/privatevoice.src/build/local/arm64/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input
Identifier=com.privatevoice.input
Format=app bundle with Mach-O thin (arm64)
CodeDirectory v=20500 size=28311 flags=0x10000(runtime) hashes=874+7 location=embedded
Signature size=1830
Authority=PrivateVoice Local Code Signing
Signed Time=Jun 3, 2026 at 13:33:00
Info.plist entries=12
TeamIdentifier=not set
Runtime Version=26.2.0
Sealed Resources version=2 rules=13 files=3
Internal requirements count=1 size=100
==> Creating DMG
created: /Users/ar/Projects/VoiceSnap-2.1.1-Round3/privatevoice.src/build/local/arm64/PrivateVoice Input-2.1.21-build20260603.1327-arm64-local.dmg
==> Signing DMG
正在检查“Protective Master Boot Record(MBR:0)”的校验和…
Protective Master Boot Record(MBR:0):已验证CRC32 $9AC4C505
正在检查“GPT Header(Primary GPT Header:1)”的校验和…
    GPT Header(Primary GPT Header:1):已验证CRC32 $F98F597A
正在检查“GPT Partition Data(Primary GPT Table:2)”的校验和…
GPT Partition Data(Primary GPT Table:已验证CRC32 $856647DC
正在检查“(Apple_Free:3)”的校验和…
                      (Apple_Free:3):已验证CRC32 $00000000
Release/PrivateVoice-Input-2.1.21-build20260603.1327/logs/build-x86_64.log
New file
@@ -0,0 +1,136 @@
==> Preflight checks
Using existing local signing identity: PrivateVoice Local Code Signing
==> Cleaning old local build
==> Building frontend
> privatevoice-input-frontend@2.1.21 build
> vite build
vite v6.4.1 building for production...
transforming...
1:31:42 PM [vite-plugin-svelte] src/components/update/UpdateDialog.svelte:28:0 Elements with the 'dialog' interactive role must have a tabindex value
https://svelte.dev/e/a11y_interactive_supports_focus
26:
27: <!-- svelte-ignore a11y_click_events_have_key_events -->
28: <div class="overlay" onclick={onclose} role="dialog">
          ^
29:   <!-- svelte-ignore a11y_click_events_have_key_events -->
30:   <div class="dialog" onclick={(e) => e.stopPropagation()} role="document">
1:31:42 PM [vite-plugin-svelte] src/components/update/UpdateDialog.svelte:30:2 Non-interactive element `<div>` should not be assigned mouse or keyboard event listeners
https://svelte.dev/e/a11y_no_noninteractive_element_interactions
28: <div class="overlay" onclick={onclose} role="dialog">
29:   <!-- svelte-ignore a11y_click_events_have_key_events -->
30:   <div class="dialog" onclick={(e) => e.stopPropagation()} role="document">
            ^
31:     <h2 class="title">{t('update.title')}</h2>
32:     <p class="version">{t('update.version', { version: info.version })}</p>
1:31:42 PM [vite-plugin-svelte] src/components/shared/ToggleSwitch.svelte:17:0 Buttons and links should either contain text or have an `aria-label`, `aria-labelledby` or `title` attribute
https://svelte.dev/e/a11y_consider_explicit_label
15: </script>
16:
17: <button
           ^
18:   class="toggle"
19:   class:active={checked}
✓ 163 modules transformed.
rendering chunks...
computing gzip size...
dist/index.html                      0.41 kB │ gzip:  0.28 kB
dist/assets/app-icon-Bs-pS5hx.png  400.98 kB
dist/assets/index-p3GQqwqB.css      33.39 kB │ gzip:  5.73 kB
dist/assets/index-CWMyDHKt.js      137.34 kB │ gzip: 45.94 kB
✓ built in 740ms
==> Building Go binary (x86_64)
# voicesnap
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/go.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000000.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000001.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000002.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000003.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000004.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000005.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000006.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000007.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000028.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000029.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000030.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000031.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000032.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000033.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000034.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000035.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000036.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000037.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000038.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000039.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000040.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000041.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000042.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000043.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000044.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000045.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000046.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000047.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000048.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000049.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000050.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000051.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000052.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000053.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000054.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: object file (/private/var/folders/tz/gdr6h5t96cj4r08kchkjx2b00000gn/T/go-link-435413150/000055.o) was built for newer 'macOS' version (26.0) than being linked (10.13)
ld: warning: building for macOS-10.13, but linking with dylib '@rpath/libsherpa-onnx-c-api.dylib' which was built for newer version 10.15
ld: warning: building for macOS-10.13, but linking with dylib '@rpath/libonnxruntime.1.23.2.dylib' which was built for newer version 13.4
==> Assembling PrivateVoice Input.app
==> Fixing rpaths
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool: warning: changes being made to the file will invalidate the code signature in: /Users/ar/Projects/VoiceSnap-2.1.1-Round3/privatevoice.src/build/local/x86_64/PrivateVoice Input.app/Contents/Frameworks/libonnxruntime.1.23.2.dylib
==> Code signing with stable local identity
/Users/ar/Projects/VoiceSnap-2.1.1-Round3/privatevoice.src/build/local/x86_64/PrivateVoice Input.app/Contents/Frameworks/libonnxruntime.1.23.2.dylib: replacing existing signature
/Users/ar/Projects/VoiceSnap-2.1.1-Round3/privatevoice.src/build/local/x86_64/PrivateVoice Input.app: replacing existing signature
==> Verifying app signature
--prepared:/Users/ar/Projects/VoiceSnap-2.1.1-Round3/privatevoice.src/build/local/x86_64/PrivateVoice Input.app/Contents/Frameworks/libsherpa-onnx-c-api.dylib
--validated:/Users/ar/Projects/VoiceSnap-2.1.1-Round3/privatevoice.src/build/local/x86_64/PrivateVoice Input.app/Contents/Frameworks/libsherpa-onnx-c-api.dylib
--prepared:/Users/ar/Projects/VoiceSnap-2.1.1-Round3/privatevoice.src/build/local/x86_64/PrivateVoice Input.app/Contents/Frameworks/libonnxruntime.1.23.2.dylib
--validated:/Users/ar/Projects/VoiceSnap-2.1.1-Round3/privatevoice.src/build/local/x86_64/PrivateVoice Input.app/Contents/Frameworks/libonnxruntime.1.23.2.dylib
/Users/ar/Projects/VoiceSnap-2.1.1-Round3/privatevoice.src/build/local/x86_64/PrivateVoice Input.app: valid on disk
/Users/ar/Projects/VoiceSnap-2.1.1-Round3/privatevoice.src/build/local/x86_64/PrivateVoice Input.app: satisfies its Designated Requirement
Executable=/Users/ar/Projects/VoiceSnap-2.1.1-Round3/privatevoice.src/build/local/x86_64/PrivateVoice Input.app/Contents/MacOS/PrivateVoice Input
Identifier=com.privatevoice.input
Format=app bundle with Mach-O thin (x86_64)
CodeDirectory v=20500 size=122295 flags=0x10000(runtime) hashes=3811+7 location=embedded
Signature size=1830
Authority=PrivateVoice Local Code Signing
Signed Time=Jun 3, 2026 at 13:31:49
Info.plist entries=12
TeamIdentifier=not set
Runtime Version=26.2.0
Sealed Resources version=2 rules=13 files=3
Internal requirements count=1 size=100
==> Creating DMG
created: /Users/ar/Projects/VoiceSnap-2.1.1-Round3/privatevoice.src/build/local/x86_64/PrivateVoice Input-2.1.21-build20260603.1327-x86_64-local.dmg
==> Signing DMG
正在检查“Protective Master Boot Record(MBR:0)”的校验和…
Protective Master Boot Record(MBR:0):已验证CRC32 $4899B966
正在检查“GPT Header(Primary GPT Header:1)”的校验和…
    GPT Header(Primary GPT Header:1):已验证CRC32 $9B55D9FA
正在检查“GPT Partition Data(Primary GPT Table:2)”的校验和…
GPT Partition Data(Primary GPT Table:已验证CRC32 $9E62AC64
正在检查“(Apple_Free:3)”的校验和…
                      (Apple_Free:3):已验证CRC32 $00000000
正在检查“disk image(Apple_APFS:4)”的校验和…
            disk image(Apple_APFS:4):已验证CRC32 $7B970FC3
正在检查“GPT Partition Data(Backup GPT Table:5)”的校验和…
GPT Partition Data(Backup GPT Table::已验证CRC32 $9E62AC64
正在检查“GPT Header(Backup GPT Header:6)”的校验和…
     GPT Header(Backup GPT Header:6):已验证CRC32 $15CB531C
已验证CRC32 $BBFD08FB
Release/PrivateVoice-Input-2.1.21-build20260603.1327/logs/moonshine-download-load.log
New file
@@ -0,0 +1,14 @@
=== RUN   TestMoonshineDownloadValidateAndLoad
[2026-06-03 13:36:47] INFO Downloading model from URL 1: https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-moonshine-base-en-int8.tar.bz2
    moonshine_download_load_test.go:28: download progress 25.3% (63354163/250807309)
    moonshine_download_load_test.go:28: download progress 50.0% (125415434/250807309)
    moonshine_download_load_test.go:28: download progress 75.2% (188709519/250807309)
    moonshine_download_load_test.go:28: download progress 100.0% (250807309/250807309)
[2026-06-03 13:40:43] INFO Extracting model archive...
[2026-06-03 13:40:55] INFO Model download and extraction complete
[2026-06-03 13:40:55] INFO Loading model moonshine-en backend=moonshine from /tmp/privatevoice-round3-moonshine.dzSu2w/moonshine-en
[2026-06-03 13:40:55] INFO Engine initialized: Moonshine English · CPU
moonshine qa ok: dir=/tmp/privatevoice-round3-moonshine.dzSu2w/moonshine-en backend=moonshine
--- PASS: TestMoonshineDownloadValidateAndLoad (248.45s)
PASS
ok      voicesnap/qa_round3_tmp    249.276s
Release/PrivateVoice-Input-2.1.21-build20260603.1327/logs/verify-dmgs.log
New file
@@ -0,0 +1,34 @@
正在检查“Protective Master Boot Record(MBR:0)”的校验和…
Protective Master Boot Record(MBR:0):已验证CRC32 $9AC4C505
正在检查“GPT Header(Primary GPT Header:1)”的校验和…
    GPT Header(Primary GPT Header:1):已验证CRC32 $F98F597A
正在检查“GPT Partition Data(Primary GPT Table:2)”的校验和…
GPT Partition Data(Primary GPT Table:已验证CRC32 $856647DC
正在检查“(Apple_Free:3)”的校验和…
                      (Apple_Free:3):已验证CRC32 $00000000
正在检查“disk image(Apple_APFS:4)”的校验和…
            disk image(Apple_APFS:4):已验证CRC32 $C6918788
正在检查“(Apple_Free:5)”的校验和…
                      (Apple_Free:5):已验证CRC32 $00000000
正在检查“GPT Partition Data(Backup GPT Table:6)”的校验和…
GPT Partition Data(Backup GPT Table::已验证CRC32 $856647DC
正在检查“GPT Header(Backup GPT Header:7)”的校验和…
     GPT Header(Backup GPT Header:7):已验证CRC32 $4230B540
已验证CRC32 $679A3586
hdiutil: verify: checksum of "Release/PrivateVoice-Input-2.1.21-build20260603.1327/PrivateVoice Input-2.1.21-build20260603.1327-arm64-local.dmg" is VALID
正在检查“Protective Master Boot Record(MBR:0)”的校验和…
Protective Master Boot Record(MBR:0):已验证CRC32 $4899B966
正在检查“GPT Header(Primary GPT Header:1)”的校验和…
    GPT Header(Primary GPT Header:1):已验证CRC32 $9B55D9FA
正在检查“GPT Partition Data(Primary GPT Table:2)”的校验和…
GPT Partition Data(Primary GPT Table:已验证CRC32 $9E62AC64
正在检查“(Apple_Free:3)”的校验和…
                      (Apple_Free:3):已验证CRC32 $00000000
正在检查“disk image(Apple_APFS:4)”的校验和…
            disk image(Apple_APFS:4):已验证CRC32 $7B970FC3
正在检查“GPT Partition Data(Backup GPT Table:5)”的校验和…
GPT Partition Data(Backup GPT Table::已验证CRC32 $9E62AC64
正在检查“GPT Header(Backup GPT Header:6)”的校验和…
     GPT Header(Backup GPT Header:6):已验证CRC32 $15CB531C
已验证CRC32 $BBFD08FB
hdiutil: verify: checksum of "Release/PrivateVoice-Input-2.1.21-build20260603.1327/PrivateVoice Input-2.1.21-build20260603.1327-x86_64-local.dmg" is VALID
Release/PrivateVoice-Input-2.1.23-build20260603.1904/SHA256SUMS.txt
@@ -1 +1 @@
f8d4da74e98b727420982ecaca4ba03a361b7a38616d51ebf17eba5bdb4f0fac  Release/PrivateVoice-Input-2.1.23-build20260603.1904/PrivateVoice Input-2.1.23-build20260603.1904-arm64-local.dmg
f8d4da74e98b727420982ecaca4ba03a361b7a38616d51ebf17eba5bdb4f0fac  PrivateVoice Input-2.1.23-build20260603.1904-arm64-local.dmg
Release/X-旧版build成果/PrivateVoice-Input-2.1.10-build20260530.1640/测试说明.md
New file
@@ -0,0 +1,30 @@
# PrivateVoice Input 2.1.10 测试说明
版本:2.1.10
Build:20260530.1640
用途:历史记录 CSV 勘误与词库自动扩充 Phase 1 测试包
## 选择安装包
- Apple Silicon Mac:`PrivateVoice Input-2.1.10-build20260530.1640-arm64-local.dmg`
- Intel Mac:`PrivateVoice Input-2.1.10-build20260530.1640-x86_64-local.dmg`
## 注意
本包使用本机 `PrivateVoice Local Code Signing` 证书签名,没有 Developer ID 公证。换电脑测试时,如果 macOS 提示无法打开,可先用右键打开;如果仍被拦截,这是签名/公证限制,不代表功能代码启动失败。
## 本轮重点验证
- 历史页能导出勘误 CSV
- CSV 能用 Numbers 或 Excel 打开,中文不乱码
- 词库页能选择并预览勘误 CSV
- 预览中新增、重复、冲突、无效、空项、超限统计正确
- 点击确认后只追加新增规则
- 导入后的规则能在后续识别文本中生效
- 取消导出、取消选择文件、取消预览时不会写入词库
## 校验值
- arm64 SHA256:`9e13ab5257368ddef2dd04919b3b9f6623be322238d9c7cd12ac85e348572684`
- x86_64 SHA256:`08c115217fbe441864113149d79b1d93914f63eac3101393e1e94ff94878329e`
Release/X-旧版build成果/PrivateVoice-Input-2.1.12-build20260530.1800/测试说明.md
New file
@@ -0,0 +1,40 @@
# PrivateVoice Input 2.1.12 测试说明
版本:2.1.12
Build:20260530.1800
用途:历史记录 CSV 勘误与词库自动扩充 Phase 1 测试包
## 选择安装包
- Apple Silicon Mac:`PrivateVoice Input-2.1.12-build20260530.1800-arm64-local.dmg`
- Intel Mac:`PrivateVoice Input-2.1.12-build20260530.1800-x86_64-local.dmg`
## 本轮界面变化
- 勘误 CSV 导出表头改为中文
- 样例行文字改为“正确的格式是点 CSV”
- 词库页按钮改为“导入用户词库 / 导出用户词库”
- “导入勘误表”按钮移动到词库页工具栏最右侧
## 注意
本包使用本机 `PrivateVoice Local Code Signing` 证书签名,没有 Developer ID 公证。换电脑测试时,如果 macOS 提示无法打开,可先用右键打开;如果仍被拦截,这是签名/公证限制,不代表功能代码启动失败。
## 本轮重点验证
- 历史页能导出勘误 CSV
- CSV 表头为中文,示例行对普通用户可读
- CSV 能用 Numbers 或 Excel 打开,中文不乱码
- 词库页左侧显示“导入用户词库 / 导出用户词库”
- 词库页右侧显示“导入勘误表”
- 词库页能选择并预览勘误 CSV
- 预览中新增、重复、冲突、无效、空项、超限统计正确
- 点击确认后只追加新增规则
- 导入后的规则能在后续识别文本中生效
- 取消导出、取消选择文件、取消预览时不会写入词库
## 校验值
- arm64 SHA256:`d1a04a87342266f27bff2b97e81fa5135e1ceef01d025bc58500bdf881eafc80`
- x86_64 SHA256:`efac067af7872a3bd07b5e59e3c78ec92d47443226cdc1a185ecdcc41594251f`
Release/X-旧版build成果/PrivateVoice-Input-2.1.13-build20260530.1949/SHA256SUMS.txt
New file
@@ -0,0 +1,2 @@
b27bf8a92928ec469515c8cb44736fde1aab49662297a3933d252e02eecedd40  PrivateVoice Input-2.1.13-build20260530.1949-arm64-local.dmg
ec5249e2178200adfcbcbf2832a7a5c8e0317231dbaddb8cf1fd731ad5dc0792  PrivateVoice Input-2.1.13-build20260530.1949-x86_64-local.dmg
Release/X-旧版build成果/PrivateVoice-Input-2.1.14-build20260531.0120/SHA256SUMS.txt
New file
@@ -0,0 +1,2 @@
8f5f8b2ba0de12aa90fb74c606b28d86a4a2c9a7a487dda69758ce98d7c193c7  PrivateVoice Input-2.1.14-build20260531.0120-arm64-local.dmg
1e7cf9f09fdf89d606a4bb5b2d0144ea51684f26ee6f2c2a400d741325839efa  PrivateVoice Input-2.1.14-build20260531.0120-x86_64-local.dmg
Release/X-旧版build成果/PrivateVoice-Input-2.1.15-build20260531.1102/SHA256SUMS.txt
New file
@@ -0,0 +1,2 @@
7439d7fce124136afb3741310ba3481c5b115393ff85e00eef10459dc2c58f29  PrivateVoice Input-2.1.15-build20260531.1102-arm64-local.dmg
43e4105c9ba8d554642505de966f7799608f442710e3a760a2e0791047912114  PrivateVoice Input-2.1.15-build20260531.1102-x86_64-local.dmg
Release/X-旧版build成果/PrivateVoice-Input-2.1.16-build20260531.1131/SHA256SUMS.txt
New file
@@ -0,0 +1,2 @@
3237c7604ec0bdcc368a399b20818fadc82b88c3a57117f57cffc18838c9919d  PrivateVoice Input-2.1.16-build20260531.1131-arm64-local.dmg
b96d42eb1ffd9b58f9bd7757637181a6e26dcaaa199c2e054a7fa8cfccbb76eb  PrivateVoice Input-2.1.16-build20260531.1131-x86_64-local.dmg
Release/X-旧版build成果/PrivateVoice-Input-2.1.17-build20260531.1359/SHA256SUMS.txt
New file
@@ -0,0 +1,2 @@
4ebbc0b979193a2b38a8f755f4c11130b16c9429ea7fb8a559be91d0fddab290  PrivateVoice Input-2.1.17-build20260531.1359-arm64-local.dmg
a57b727ca7d374493883bf97e2b5cf18cc8e58ac952eb53aa105e79d8bf1cf7a  PrivateVoice Input-2.1.17-build20260531.1359-x86_64-local.dmg