From 39e759d015af5d82f387b57a8d137bdeb844d430 Mon Sep 17 00:00:00 2001 From: Ariver <shanghai3168@gmail.com> Date: Fri, 19 Jun 2026 22:40:08 +0800 Subject: [PATCH] Fix historical Apple default note migration --- src/Docs/Requirements/2026-06-19-apple-default-note-localization-worklog.md | 39 +++++++++++++++++++++++++++++++++++++++ 1 files changed, 39 insertions(+), 0 deletions(-) diff --git a/src/Docs/Requirements/2026-06-19-apple-default-note-localization-worklog.md b/src/Docs/Requirements/2026-06-19-apple-default-note-localization-worklog.md index 69b0a50..7d06bee 100644 --- a/src/Docs/Requirements/2026-06-19-apple-default-note-localization-worklog.md +++ b/src/Docs/Requirements/2026-06-19-apple-default-note-localization-worklog.md @@ -65,3 +65,42 @@ - 本轮修复只按同 bundle 的 Apple 默认备注 fingerprint 迁移旧数据,不按中文字符判断。 - Arabic 等非中文语言资源中 Apple 默认备注保持本地语言;旧中文默认备注会迁移到当前语言。 - 用户手写备注和手动清空备注仍由 `.manual` metadata 保护,不会被本轮迁移覆盖。 + +## 2026-06-19 22:21 + +### 用户复测失败 + +- 用户截图显示,在非中文语言下,Chess、TV、Phone、Freeform、Music、Time Machine 等 Apple 自带应用仍显示旧中文备注。 +- 本机 `tags.json` 复查确认这些应用的备注为旧中文默认文案,且 `appNoteMetadata` 为 `None`。 +- 7.9.3 的迁移只覆盖当前 29 语种资源和句末标点变体,未覆盖 7.9 之前已经写入用户库的另一批历史默认文案。 + +### 补修 + +- `AppleDefaultAppCatalog` 增加历史默认备注 fingerprint 白名单,覆盖真实暴露的旧中文默认备注。 +- 白名单按 bundle id 精确匹配,不使用“包含中文就覆盖”的宽泛规则。 +- 运行时代码保存 fingerprint,不保存旧中文展示文案。 +- `apple_default_note_migration_qa.sh` 增加真实历史默认备注 fixture,并验证迁移到 29 个语种后不会保留旧中文。 +- `apple_default_apps_resource_qa.sh` 增加跨语种脚本污染检查:Apple 初始化备注在 translations 和 localizations 中都不允许混入其他语种正文。 +- 版本推进到 `7.9.4 / 20260619.2221`。 + +### 补充 QA 证据 + +- `bash Scripts/apple_default_apps_resource_qa.sh`:PASS +- `bash Scripts/apple_default_note_migration_qa.sh`:PASS +- `bash Scripts/apple_default_note_policy_qa.sh`:PASS +- `bash Scripts/smartstart_catalog_resource_qa.sh`:PASS +- `bash Scripts/usage_tips_qa.sh`:PASS +- `bash Scripts/macos14_availability_typecheck_qa.sh`:PASS +- 当前真实 `tags.json` 只读模拟:Chess、Freeform、Home、Music、Passwords、Phone、TV、Time Machine、Disk Utility、iPhone Mirroring 共 10 条 stale Apple 备注,在 `ms/ja/ar/en` 下均会迁移到目标语种。 +- `APP_BUILD=20260619.2221 bash build.sh`:PASS +- `bash Scripts/macos14_build_metadata_qa.sh`:PASS +- `codesign --verify --deep --strict --verbose=2 build/TagLauncher.app`:PASS +- `bash make_dmg.sh`:PASS,生成 `/Users/ar/Projects/Taglauncher/src/build/TagLauncher.dmg` +- `hdiutil verify build/TagLauncher.dmg`:PASS +- DMG SHA256:`e6a5b2d1aab96cfd8e8a09edda7ae64b0319c044c2517ad9527887f020507d41` + +### 追加 QA 原则 + +- Apple 自带应用备注属于初始化内容,不是用户内容。 +- 初始化备注必须按当前语言显示;任一语种资源出现其他语种正文均视为 QA FAIL。 +- QA 不能只验证资源存在或单个样本迁移,必须覆盖真实用户库里已知历史默认备注。 -- Gitblit v1.9.3