edit | blame | history | raw

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