From aa6d716dff8ea05a57500aab74775292df7954b2 Mon Sep 17 00:00:00 2001 From: Ariver <shanghai3168@gmail.com> Date: Mon, 18 May 2026 15:49:59 +0800 Subject: [PATCH] feat: add permission status panel --- TODO.md | 29 +++++++++++++++++++++++++++++ 1 files changed, 29 insertions(+), 0 deletions(-) diff --git a/TODO.md b/TODO.md index 2a89645..f39bdcf 100644 --- a/TODO.md +++ b/TODO.md @@ -17,6 +17,35 @@ ## Done +- [2026-05-18] 增加权限检查设置面板。 + - 新增“权限”设置页,清晰列出麦克风、辅助功能、输入监控三个权限。 + - 权限状态由后端调用 macOS 原生 API 检查;已授权显示绿灯,未授权显示红灯。 + - 支持刷新状态和“去授权”按钮,点击后请求系统授权并打开对应系统设置页。 + - build: `20260518.1541` + - 输出: `VoiceSnapGo/build/local/arm64/VoiceSnap.app` + - 输出: `VoiceSnapGo/build/local/arm64/VoiceSnap-2.1.1-build20260518.1541-arm64-local.dmg` + - 兼容输出: `VoiceSnapGo/build/local/arm64/VoiceSnap-2.1.1-arm64-local.dmg` 已替换为同一份新包。 + - 已安装到 `/Applications/VoiceSnap.app`;启动日志验证 build `20260518.1541`。 +- [2026-05-18] 修复 VoiceSnap 设置窗口不可见时右 Alt 全局热键无法触发的问题。 + - 观察: 设置窗口在前台可触发,窗口隐藏或被遮挡后按右 Alt 没有热键日志。 + - 修复: macOS 热键监听改为专用线程运行,并在 event tap 未启动时自动重试。 + - 修复: 右/左修饰键检测增加物理按键状态轮询兜底,避免只依赖窗口前台状态下的 event tap;同时去掉 Option 组 flags 对左右 Alt 的兜底混用,继续保持右 Alt/左 Alt 严格区分。 + - 修复: 启动时开启系统 activity,降低隐藏窗口后被 App Nap 影响的概率。 + - 日志增强: 右 Alt 诊断日志现在记录 `source`、`physicalDown`、`trackedDown`、`recentDown`、event tap 启动尝试/失败/禁用次数。 + - build: `20260518.0230` + - 输出: `VoiceSnapGo/build/local/arm64/VoiceSnap.app` + - 输出: `VoiceSnapGo/build/local/arm64/VoiceSnap-2.1.1-build20260518.0230-arm64-local.dmg` + - 兼容输出: `VoiceSnapGo/build/local/arm64/VoiceSnap-2.1.1-arm64-local.dmg` 已替换为同一份新包。 + - 已安装到 `/Applications/VoiceSnap.app`;启动日志验证 build `20260518.0230`,辅助功能权限已通过,event tap 已启动。 +- [2026-05-18] 将本地 macOS 打包从 ad-hoc 签名改为固定本地 Code Signing 身份,减少辅助功能权限失效。 + - 新增 `VoiceSnapGo/scripts/build-local-macos.sh`,用于本地构建、稳定签名、生成 DMG,可选安装到 `/Applications`。 + - 自动创建/复用钥匙串身份 `VoiceSnap Local Code Signing`,签名 `.app`、内部 dylib 和 `.dmg`。 + - 当前安装包签名已验证: `Authority=VoiceSnap Local Code Signing`。 + - build: `20260518.0211` + - 输出: `VoiceSnapGo/build/local/arm64/VoiceSnap.app` + - 输出: `VoiceSnapGo/build/local/arm64/VoiceSnap-2.1.1-build20260518.0211-arm64-local.dmg` + - 兼容输出: `VoiceSnapGo/build/local/arm64/VoiceSnap-2.1.1-arm64-local.dmg` 已替换为同一份新包。 + - 已安装到 `/Applications/VoiceSnap.app`;本次签名身份变化后需要在系统设置里重新添加一次辅助功能权限。 - [2026-05-18] 修复停止录音时 `ma_device_stop` 与音频回调互等导致 App 假死的问题。 - 根因: `Recorder.StopAndGetSamples()` 持有录音互斥锁调用 `device.Stop()`;底层 `ma_device_stop` 等待音频回调结束,而音频回调同时等待同一把锁,形成互等。 - 修复: 停止录音时先在锁内摘除设备并标记非录音,释放锁后再调用 `Stop/Uninit`,避免底层停止设备时阻塞音频回调。 -- Gitblit v1.9.3