edit | blame | history | raw

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.mdqa-workflow.mddelivery-gate.mdwork-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.swiftApptag/Localization/*.jsonResearch/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( 不回归。