From 3803f0987d7fd38cbd754f3dc37caa29247c852c Mon Sep 17 00:00:00 2001 From: Ariver <shanghai3168@gmail.com> Date: Wed, 01 Jul 2026 23:21:27 +0800 Subject: [PATCH] Merge Windows preview build --- TODO.md | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 52 insertions(+), 1 deletions(-) diff --git a/TODO.md b/TODO.md index f39bdcf..f907e2d 100644 --- a/TODO.md +++ b/TODO.md @@ -13,10 +13,61 @@ ## Todo -- 无 +- [2026-06-05] 将 X-ASR 列为未来候选模型并做技术 spike。 + - 定位: 不是替换现有首批四模型,而是评估 `X-ASR-zh-en` 对实时中英混输、“边说边出字”的价值。 + - 初始策略: 只选一个 chunk 变体做 Apple Silicon 真机测试,优先 `480 ms` 或 `960 ms`,不把四个 chunk 全量打包。 + - 技术验证: sherpa-onnx Go streaming API、Zipformer transducer config、CPU 延迟、内存、发热、VAD/endpointing、partial/final 上屏链路。 + - 产品验证: 与 SenseVoice、Qwen3-ASR、Moonshine、Parakeet 对比,确认是否进入 `实验入口 / 正式候选 / 放弃`。 + - 合规验证: Apache-2.0 license notice、模型卡、技术报告和训练数据说明补齐后再产品化。 +- [2026-06-05] 在 Mac App Store 构建配置中写入 `ITSAppUsesNonExemptEncryption=false`。 + - 目的: 避免 App Store Connect 每次上传 build 后显示 `Missing Compliance` 并要求手动填写 App Encryption Documentation。 + - 前提: 当前 App 不实现、打包或接入非 Apple 操作系统提供的加密算法。 + - 验收: 生成的 Mac App Store `.app` 内 `Info.plist` 包含 `ITSAppUsesNonExemptEncryption`,值为 `false`;如后续引入第三方/自实现加密库,需重新评估出口合规。 ## Done +- [2026-05-18] 重做 VoiceSnap macOS 图标为 SVG 矢量母版。 + - 目标: 白色圆角方形底、蓝色麦克风,风格参考 TagLauncher,避免毛边、截图白边和尺寸忽大忽小。 + - 最终选择: B 版白底蓝色麦克风,并为中间麦克风加入轻微层次阴影。 + - SVG 母版: `VoiceSnapGo/design/icon-candidates/voicesnap_icon_B_thin-blue-glyph.svg` + - 当前打包图标: `VoiceSnapGo/build/darwin/icon.icns` + - 备用 ICNS: `VoiceSnapGo/build/darwin/VoiceSnap-selected-B-shadow.icns` + - 版本: `2.1.4` + - build: `20260518.1748` +- [2026-05-18] 增加语音输入交互方式设置。 + - 新增配置 `HotkeyMode`,默认 `hold`。 + - 设置页新增“语音输入方式”分段控件,支持“点按”和“长按”。 + - 点按: 点一下快捷键开始说话,再点一下结束并识别输入。 + - 长按: 长按快捷键开始录音,松开后结束并识别输入。 + - 版本: `2.1.3` + - build: `20260518.1651` +- [2026-05-18] 修复全屏窗口下语音输入悬浮指示器不显示。 + - 根因: macOS 全屏 Space 下普通 `NSWindow` + `NSFloatingWindowLevel` 不稳定,容易被全屏 App 压在下层。 + - 修复: 悬浮指示器改为非激活 `NSPanel`,窗口层级提升到 `kCGStatusWindowLevelKey`,并补充 `Transient`、`IgnoresCycle`、`FullScreenAuxiliary`、`CanJoinAllSpaces` 行为。 + - 版本: `2.1.2` + - build: `20260518.1623` + - 输出: `VoiceSnapGo/build/local/arm64/VoiceSnap.app` + - 输出: `VoiceSnapGo/build/local/arm64/VoiceSnap-2.1.2-build20260518.1623-arm64-local.dmg` + - 兼容输出: `VoiceSnapGo/build/local/arm64/VoiceSnap-2.1.2-arm64-local.dmg` + - 已安装到 `/Applications/VoiceSnap.app`;签名验证为 `VoiceSnap Local Code Signing`。 +- [2026-05-18] 将 macOS 后台活动/登录项纳入权限检查面板。 + - 说明: 系统设置里的 “VoiceSnap Local” 是本地稳定签名证书的开发者名,下面挂着 VoiceSnap 的登录项/后台活动。 + - 它不是右 Alt、录音、自动上屏的必需隐私权限,但会影响登录后是否自动在后台运行。 + - 面板新增“后台活动 / 登录项”,标为“可选”,不影响核心权限总绿灯。 + - build: `20260518.1604` + - 输出: `VoiceSnapGo/build/local/arm64/VoiceSnap.app` + - 输出: `VoiceSnapGo/build/local/arm64/VoiceSnap-2.1.1-build20260518.1604-arm64-local.dmg` + - 兼容输出: `VoiceSnapGo/build/local/arm64/VoiceSnap-2.1.1-arm64-local.dmg` 已替换为同一份新包。 + - 已安装到 `/Applications/VoiceSnap.app`;启动日志验证 build `20260518.1604`。 +- [2026-05-18] 修复右 Alt 事件进入但被 macOS 物理状态查询误判为未按下的问题。 + - 日志显示 R-Alt `flagsChanged` 事件正常进入,`flags=0x80140`,但 `physicalDown=false` 导致 `pollDown=false`。 + - 修复: 按事件 keyCode 区分左右 Alt,并用该事件的 modifier flags 判定按下/释放。 + - 验证: 重新打包安装后模拟右 Alt,日志显示 `eventDown=true`、`pollDown=true`,并成功触发录音流程。 + - build: `20260518.1554` + - 输出: `VoiceSnapGo/build/local/arm64/VoiceSnap.app` + - 输出: `VoiceSnapGo/build/local/arm64/VoiceSnap-2.1.1-build20260518.1554-arm64-local.dmg` + - 兼容输出: `VoiceSnapGo/build/local/arm64/VoiceSnap-2.1.1-arm64-local.dmg` 已替换为同一份新包。 + - 已安装到 `/Applications/VoiceSnap.app`;启动日志验证 build `20260518.1554`。 - [2026-05-18] 增加权限检查设置面板。 - 新增“权限”设置页,清晰列出麦克风、辅助功能、输入监控三个权限。 - 权限状态由后端调用 macOS 原生 API 检查;已授权显示绿灯,未授权显示红灯。 -- Gitblit v1.9.3