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