TagLauncher 会话记录 - 2026-06-08-06
用户目标
- 基于“当前没有真实老用户”的前提,重新拉一位架构师、一位 QA/KOA、一位程序员讨论 Apple 系统自带应用默认备注多语言方案。
- 目标不是迁就旧中文
appleDefault,而是制定长期最合理、对 29 种语言用户最友好的方案。
三方共识
- Apple 默认备注运行时应完全收敛到 SmartStart UltimateDefaultCatalog。
- 所有系统默认备注统一使用
.catalogDefault metadata。
AppleDefaultAppNotes.swift 不应再作为运行时备注来源。
- SmartStart catalog 已有 29 语言 notes 和 77 个
com.apple.* 条目,应作为唯一默认备注数据源。
- Apple app 与第三方 catalog app 使用同一匹配路径:优先 bundle id,其次 normalized name。
- 用户手动编辑后的备注必须标记为
.manual,之后永远不随语言切换自动变化。
- 新版本不应再写入
.appleDefault;该 enum case 最多保留为历史解码兼容。
推荐实现方向
SmartStartService 增加公开查询接口,例如:
static func defaultNote(for app: AppInfo) -> (note: String, provenance: SmartDefaultNoteProvenance)?
DataLayer.seedDefaultAppleAppNotes 改为 catalog 默认备注播种逻辑,不再调用 AppleDefaultAppNotes.note(for:)。
- 写入默认备注时统一使用:
origin = .catalogDefault
catalog = provenance
noteFingerprint = provenance.noteFingerprint
ContentView / L10n 现有语言切换后调用 SmartStartService.relocalizeDefaultNotesForCurrentLanguage(apps:) 的方向保留。
AppleDefaultAppNotes.swift 后续拆分:
- familiar Apple app 白名单可保留或迁到
AppleAppClassifier。
- 中文备注字典和
note(for:) 不再用于运行时。
分歧点:清空备注语义
- QA 和程序员建议:清空备注是用户显式覆盖为空,后续不自动填回。
- 架构师建议:清空备注更像撤销自定义,应恢复默认跟随。
- 主线程建议:按“用户手动改过才不自动变化”的字面语义,清空也属于手动改过;更安全的产品行为是保持空,并在未来另设“恢复默认备注”入口。
QA 门禁建议
- 29 语言 × 77 个 Apple 条目的 notes 完整性检查。
- 新用户英文/中文/日文启动,Apple 默认备注应为当前语言。
- 语言切换时,未改默认备注跟随变化。
- 用户手动改过某条备注后,该条不再随语言变化。
- 用户清空某条备注后,该条应按最终产品定义保持空或恢复默认;实现前必须先确定。
- 第三方应用不得被 Apple 默认备注逻辑误改。
- 构建产物内必须包含 base catalog、manifest、29 个 compressed notes,并验证可 decode。
未执行事项
- 本轮未修改源码。
- 等用户确认是否进入实现,以及确认“清空备注”的最终语义。