用户目标
- 阅读
Docs/X-01产品文档/2026-06-25-PRD-免费版与Pro解锁.md。
- 结合当前
src/ 代码,输出“功能门禁与数据安全”的落地方案。
- 聚焦回答:
- 免费/Pro 主题、备注、手动排序、导入导出分别在哪个入口拦截。
- 预览只改显示、不写真实数据时,现有代码里哪些写入点必须绕开。
- 设置页 Pro 区域和轻量 Pro 弹窗最小改动挂点。
- Phase 1 / Phase 2 最小实现切片。
- 本轮只做分析,不改业务文件。
已完成事项
- 读取并遵守:
CODE_GOVERNANCE.md
~/.codex/rules/pre-implementation-discussion.md
~/.codex/rules/code-governance.md
CODEGRAPH.md
~/.codex/rules/session-memory.md
- 检查当前 Git 起点与工作区状态。
- 只读分析 PRD、
PreferencesView.swift、ContentView.swift、DataLayer.swift、AppGridCollectionView.swift、AppGridSupport.swift、ApptagApp.swift、AppLibraryController.swift、QuickSearch.swift。
关键决策
- 门禁采用“双层策略”:
- UI 入口先拦截,避免误导。
- 持久化写入点再补硬门,避免后续调用绕过。
- 主题预览必须走“瞬时预览态”,不能再直接写
@AppStorage(appGridThemeID)。
- 排序预览必须只改
ContentView 本地态,不调用 TagEditor.reorderApps,并避免立刻 refreshApps(forceLayoutRefresh:) 把预览和真实数据混淆。
- 设置页 Pro 区域最小挂点放在
PreferencesView 的 Data tab 顶部,复用现有 dataSection 结构;不新增侧边栏 tab。
- 轻量 Pro 弹窗最小挂点:
- 设置页挂在
PreferencesView 根 ZStack,与现有 SettingsConfirmationView 同层。
- 主浮层挂在
ContentView 的 overlay 栈,纳入 publishModalInteractionState()。
- 关键假设:PRD 的“手动排序”只指应用图标排序,不含标签排序。若产品要求连 tag reorder 也收费,需额外门禁
ContentView 的 tag reorder 入口与 TagEditor.reorderTags。
涉及代码定位
- 主题:
src/Apptag/PreferencesView.swift 主题点击直接写 appGridThemeID
src/Apptag/ContentView.swift 读取 appGridThemeID 并渲染 renderedAppGridTheme
- 备注:
src/Apptag/AppGridCollectionView.swift 右键/菜单进入备注编辑
src/Apptag/ContentView.swift commitBubbleNote()
src/Apptag/DataLayer.swift TagEditor.setAppNote
- 排序:
src/Apptag/AppGridCollectionView.swift 同容器 drop 时回调 onReorderApps
src/Apptag/ContentView.swift reorderApps(inContainer:orderedPaths:)
src/Apptag/DataLayer.swift TagEditor.reorderApps
- 导入导出:
src/Apptag/PreferencesView.swift exportTags() / importTags()
src/Apptag/DataLayer.swift TagDatabase.exportTo / importFrom
文件变更
- 新增会话记录:
.codex-sessionhistory/2026-06-26-Pro门禁数据安全.md
未决问题
- 现有应用图标排序是“拖拽即保存”,没有“保存排序”按钮;若严格执行 PRD 的“点击保存排序时提示解锁 Pro”,需要补一个明确保存动作。
- 是否把标签排序也纳入 Pro,PRD 与现有代码能力边界之间仍需产品确认。
后续建议
- 若进入实现,先由架构师 A 交付统一
ProEntitlement 只读接口,再由架构师 B 分三步接入:
- 设置页 Pro 区域与购买/恢复入口。
- 主题预览与导入导出门禁。
- 备注额度与排序预览硬门。