8.2.0 Pro 自定义快捷键 TODO
目标:让 Pro 用户可以自定义全局快捷键;免费用户继续固定使用默认快捷键,不允许保存或启用自定义快捷键。
版本与范围
- 版本号:8.2.0
- 保持默认快捷键不变:
- 显示应用列表:Option + Shift + Space
- 全局 Quick Search:Fn + Space
- 不做原生三指/四指捕获。
- 不引入 Accessibility、Input Monitoring、CGEventTap 或私有 API。
- 不迁移旧实验快捷键 key;旧 key 继续由
AppDefaults.removeShortcutCustomizationDefaults() 清理。
实现 TODO
- [x] 增加
ProFeature.customHotkeys,把自定义快捷键纳入 Pro 权益体系。
- [x] 增加统一的快捷键存储与校验层,使用新命名空间
customHotkeys.v1.*。
- [x] App 启动和菜单显示统一读取“有效快捷键”:
- 免费用户:始终默认快捷键。
- Pro 用户:合法自定义快捷键优先,否则默认快捷键。
- [x] 注册快捷键时采用事务式流程:候选快捷键先注册成功,再替换旧引用并保存。
- [x] 设置页快捷键页签增加自定义入口、恢复默认入口、录制状态与错误提示。
- [x] Pro 状态变化时重新注册有效快捷键。
- [x] 更新 29 语种本地化文案。
QA TODO
- [x] 静态检查 Pro gate:UI、保存、注册有效快捷键均不能绕过 Pro。
- [x] 静态检查 Carbon-only:不得出现 CGEventTap、Accessibility、Input Monitoring 等路径。
- [x] 静态检查默认快捷键:免费状态始终回退默认值。
- [x] 静态检查事务式注册:失败时旧快捷键不被先卸载。
- [x] 29 语种本地化完整性检查。
- [x] macOS 14 availability/typecheck。
- [x] build.sh 构建与版本元数据检查。
Go / No-Go
- Go:源码、QA、构建、版本号和 changelog 全部通过后冻结。
- No-Go:任何 Pro gate 可绕过、快捷键注册失败导致默认快捷键不可用、或引入额外系统权限。
完成记录
- 版本:8.2.0
- Build:20260628.2308
- QA:
Scripts/pro_custom_hotkeys_qa.sh
Scripts/pro_feature_gate_qa.sh
Scripts/pro_localization_qa.sh
Scripts/macos14_availability_typecheck_qa.sh
Scripts/macos14_build_metadata_qa.sh
- 构建产物:
build/TagLauncher.app
build/TagLauncher.dmg
- DMG SHA256:
493b77349285f0254935ffa10feefbc278ad18b5f91c12fca5579d6599810bea