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。当前建议保持空白,避免违背用户意图。