edit | blame | history | raw

TagLauncher 会话记录 - 2026-06-08-03

用户目标

  • 在不改代码的前提下,拉架构师和 QA 一起讨论 Apple 系统自带应用默认备注多语言化的实现方案。

已完成事项

  • 启动两个子代理分别做架构审查和 QA 审查。
  • 主线程补查 SmartStart runtime:
  • SmartStartService.loadCatalogSnapshot() 已按 L10n.currentCode 加载当前语言备注。
  • languageFallbacks 已支持 fallback。
  • 77 个 Apple catalog 条目都有有效 defaultTag,不会被 runtime snapshot 过滤。
  • 未修改源码。

架构结论

  • 运行时应统一使用 SmartStart catalog 作为默认备注来源。
  • 不应新增 Apple 独立 29 语言文件,也不应继续让 AppleDefaultAppNotes.swift 作为运行时备注来源。
  • 建议在 SmartStartService 新增小接口,例如 defaultNote(for:)defaultNotes(for:),返回当前语言 note 与 provenance。
  • 自动默认备注统一写为 origin = .catalogDefault,并保存 SmartDefaultNoteProvenance
  • origin = .appleDefault 只作为旧数据迁移状态保留。
  • AppleDefaultAppNotes.swift 短期保留用于旧数据识别和构建脚本兼容;中期可拆出 Apple policy,移除备注表运行时职责。

QA 结论

  • 当前发布阻断风险:首次扫描仍用中文 AppleDefaultAppNotes.note 写入 origin = .appleDefault,语言切换不会处理它。
  • 必须覆盖旧数据迁移:
  • appleDefault 且 fingerprint 匹配旧默认:迁移为当前语言 catalog 默认备注。
  • 无 metadata 但文本精确等于旧 Apple 中文默认:可迁移。
  • manual 或 fingerprint 不匹配:不得覆盖。
  • 必须补测试:
  • 新用户英文/中文首次启动 Apple 默认备注。
  • catalog 默认备注随语言切换。
  • 手写备注不随语言切换。
  • appleDefault 迁移。
  • catalog 完整性与构建产物资源校验。

推荐方案摘要

  • 第一步:在 SmartStartService 暴露 catalog 默认备注查询接口。
  • 第二步:把 DataLayer.seedDefaultAppleAppNotes 改为使用 SmartStart catalog note,并写入 .catalogDefault metadata。
  • 第三步:在语言切换重本地化路径中同时兼容迁移旧 .appleDefault
  • 第四步:对无 metadata 旧中文默认备注做保守迁移;不确定的一律当用户内容保留。
  • 第五步:补 QA 脚本和真实 smoke 流程。

未决产品决策

  • 用户主动清空 Apple 默认备注后,后续语言切换/重启是否保持空白,还是允许重新 seed。当前建议保持空白,避免违背用户意图。