用户要求以架构师视角审查 /Users/ar/Projects/Taglauncher-7.8.15-source,只讨论方案、不改代码。核心目标是让 Apple 系统自带应用默认备注随界面语言显示本语言;当且仅当用户手动改过某条备注,该条不再随语言变化。用户明确说明目前没有真实老用户,老用户只有 owner 本人,因此不要以兼容旧 appleDefault 中文备注为核心约束。
work-continuity.md、delivery-gate.md。Apptag/AppleDefaultAppNotes.swift,确认其包含约 72 条中文硬编码备注和 familiar Apple app 白名单。Research/SmartStart/UltimateDefaultCatalog,确认 base catalog 中有 77 个 com.apple.* 条目,29 个 notes 语言文件存在。Apptag/SmartCategorization/SmartStartService.swift,确认 .catalogDefault 备注已有按 L10n.currentCode 加载、fallback、metadata provenance、语言切换重定位逻辑。Apptag/DataLayer.swift,确认当前 Apple 初始备注通过 seedDefaultAppleAppNotes 写入 .appleDefault,不会被 relocalizeDefaultNotesForCurrentLanguage 更新。TagEditor.setAppNote,确认用户非空编辑会写入 .manual,清空会删除备注和 metadata。L10n.swift、ApptagApp.swift、ContentView.swift,确认语言切换入口会发 .appLanguageDidChange,ContentView 收到后触发 catalog 默认备注重定位。build.sh 与 catalog 构建脚本,确认 build 会复制 base/manifest 并压缩所有 notes 资源;Research 生成脚本仍从 AppleDefaultAppNotes.swift 抽取 Apple fallback。AppleDefaultAppNotes.swift 作为备注来源。AppNoteOrigin.appleDefault 应迁移/降级为历史兼容枚举值;新写入的系统默认备注统一使用 .catalogDefault。metadata.catalog 应成为判断“仍跟随默认”的唯一依据:包含 entryID、实际语言、notesVersion 和 fingerprint。.manual;语言切换只更新 .catalogDefault 且当前文本 fingerprint 仍匹配旧默认的条目。无。用户明确要求只讨论方案、不改代码。
.appleDefault 且 fingerprint 匹配旧硬编码的备注迁到 .catalogDefault。.manual 不变、清空后恢复跟随默认、build bundle 内包含所有压缩 notes 资源。