Taglauncher 会话记录 - 2026-06-08
用户目标
- 作为并行 QA worker,只负责
/Users/ar/Projects/Taglauncher-7.8.15-source 的 QA 脚本/测试方案落地。
- 不修改
Apptag/*.swift,只允许修改 Scripts 下文件,避免与核心代码改动冲突。
- 为 SmartStart 默认备注资源新增静态资源完整性 QA:
L10n 支持 29 语言。
- SmartStart base catalog 有 77 个
com.apple.* 条目。
- 每个
notes.<lang>.json 覆盖这 77 条且 note 非空。
AppleDefaultAppNotes.swift 不应作为 runtime note 来源,可用 rg 断言/风险提示。
已完成事项
- 读取并遵守项目
AGENTS.md、qa-workflow.md、delivery-gate.md、work-continuity.md。
- 盘点现有
Scripts:
quick_search_system_app_qa.sh
window_logic_qa.sh
quick_search_app_name_qa.sh(进入本轮前已是未跟踪文件,未覆盖)
- 新增
Scripts/smartstart_catalog_resource_qa.sh,并设置可执行权限。
- 未修改任何
Apptag/*.swift。
文件变更
- 新增:
/Users/ar/Projects/Taglauncher-7.8.15-source/Scripts/smartstart_catalog_resource_qa.sh
- 用 Python 解析
Apptag/L10n.swift、Apptag/Localization/*.json、Research/SmartStart/UltimateDefaultCatalog/SmartStart_UltimateDefaultCatalog.base.json 和 29 个 SmartStart_UltimateDefaultCatalog.notes.*.json。
- 断言语言数量、语言集合一致性、base catalog Apple 条目数量、notes 文件数量、notes language 字段、catalogContentVersion、Apple entry 覆盖和 note 非空。
- 用
rg 断言 SmartStartService.swift 通过 SmartStartUltimateDefaultCatalog.notes.<language>.json.deflate 路径读取运行时 notes,并只自动重本地化 catalogDefault notes。
- 用
rg 失败断言 AppleDefaultAppNotes.note( 不应在 Apptag/*.swift 中作为 runtime note source;其他 AppleDefaultAppNotes.* 引用输出 WARN,提醒复核是否非 note-source 路径。
验证结果
- 语法检查通过:
bash -n Scripts/smartstart_catalog_resource_qa.sh
- QA 脚本运行通过:
bash -o pipefail -c './Scripts/smartstart_catalog_resource_qa.sh 2>&1 | head -c 12000'
- 输出摘要:
PASS SmartStart catalog resources: 29 L10n languages, 77 com.apple.* entries, 29 notes catalogs cover all Apple entries
WARN AppleDefaultAppNotes.swift still has runtime references; verify they are not note-source paths
- 当前 WARN 指向
DataLayer.swift 中两个 AppleDefaultAppNotes.isFamiliarAppleApp(app) 调用。
PASS SmartStart runtime note-source guard: catalog notes are the runtime source
关键决策
- 将
AppleDefaultAppNotes.note( 作为失败断言,因为它才代表旧 Swift 文件继续作为 runtime note 来源。
- 将
AppleDefaultAppNotes.isFamiliarAppleApp( 保留为 WARN,不阻断 QA,因为当前代码已通过 SmartStartService.defaultNote(for:) 获取备注,剩余引用看起来是 Apple app 熟悉度/不常用标记判断,不是 note source。
未决问题
- 是否最终完全移除
AppleDefaultAppNotes.isFamiliarAppleApp 的运行时依赖,需要核心代码 worker 或产品负责人确认;本轮未修改 Swift。
后续建议
- 将
./Scripts/smartstart_catalog_resource_qa.sh 纳入发布前静态 QA 或 CI。
- 核心代码切换完成后继续运行该脚本,确保
AppleDefaultAppNotes.note( 不回归。