2026-06-28 Pro 快捷键需求
用户目标
- 翻找历史记录,确认以前是否讨论过自定义快捷键需求。
- 自定义快捷键必须作为 Pro 功能:Pro 用户才能自定义,普通用户不能自定义。
- 如果找不到正式需求文档,则拉产品总监、架构师、代码审核员、QA 讨论并形成需求文档。
- 该功能未来要上架 App Store,因此需求阶段必须评估审核风险。
当前起点
- 项目:
/Users/ar/Projects/Taglauncher
- 源码根目录:
/Users/ar/Projects/Taglauncher/src
- 当前分支:
codex/appgrid-usage-tips
- 历史记录:找到
/Users/ar/Projects/Taglauncher/.codex-sessionhistory/2026-06-16-自定义快捷键评估.md
- 未找到正式 PRD,因此本轮新增需求文档。
已完成事项
- 读取项目规则、代码治理规则、PRD 编写技能和预实施讨论规则。
- 检索
.codex-sessionhistory、src/Docs、Docs,确认只有历史评估记录,没有正式 PRD。
- 拉起产品总监、两位架构师、代码审核员、QA 进行只读讨论。
- 核对当前代码事实:
- App Grid 固定快捷键:
⌥⇧Space
- Quick Search 固定快捷键:
Fn+Space
- 设置页当前只展示固定快捷键,没有自定义 UI
AppDefaults.removeShortcutCustomizationDefaults() 会清理历史自定义快捷键 defaults
- 当前注册逻辑不适合直接复用为自定义保存,需要事务式失败回滚
- 新增需求文档:
/Users/ar/Projects/Taglauncher/src/Docs/Requirements/2026-06-28-pro-custom-hotkeys-prd.md
关键决策
- 自定义快捷键只覆盖两个全局入口:
- App Grid 全局唤起
- Quick Search 全局唤起
- App Grid 内部
Space 不纳入自定义。
- 免费用户继续使用默认快捷键,不能录制、保存或应用自定义快捷键。
- Pro 用户可以自定义、恢复默认,并在冲突失败时保留旧快捷键。
- 自定义快捷键纳入现有 Lifetime Pro Unlock,不建议新增单独 IAP。
- 老付费用户自动获得 Pro 后,也自然获得自定义快捷键能力。
- 不做免费预览,避免写脏真实快捷键数据。
- 不引入 Accessibility、Input Monitoring、CGEventTap 或私有 API。
用户确认
用户已确认 /Users/ar/Projects/Taglauncher/src/Docs/Requirements/2026-06-28-pro-custom-hotkeys-prd.md 第 13 节所有默认口径均无异议。后续实现按该 PRD 执行,不再重复确认以下事项:
- 自定义快捷键作为现有 Lifetime Pro Unlock 的一部分,不新增单独 IAP。
- 免费用户显示锁定入口,点击后弹 Pro 提示。
- 首版不允许禁用某个全局快捷键。
- 首版不允许两个入口使用同一个快捷键。
- 首版禁止无修饰键、modifier-only、Shift-only、Option-only 和明显系统保留组合。
- 默认快捷键继续保持
⌥⇧Space 和 Fn+Space。
- 历史旧快捷键 defaults 不迁移为有效设置,只清理或忽略。
App Store 风险口径
- 该功能是 App 内数字功能解锁,适合通过非消耗型 IAP 提供。
- 免费版必须继续可用,不能把基础唤起和基础 Quick Search 锁进 Pro。
- 提交审核时需要说明:
- App 免费下载
- Pro 是一次性买断
- 旧付费用户自动获得终身 Pro
- 自定义快捷键不需要额外隐私权限
- 免费用户仍可使用默认快捷键
后续建议
- 用户确认 PRD 第 13 节默认口径后,再进入实现。
- 实现前建议独立功能分支,不夹带到当前已准备发布的 8.1.7。
- 后续实现必须补 29 语种、多系统 QA、冲突失败回滚、重启持久化。