Taglauncher 会话记录 - 2026-06-08 13
用户目标
- 用户确认 Apple 系统内置应用应单独管理,不应继续混入 SmartStart 大 catalog。
- 用户进一步要求:SmartStart 总表里凡是与 Apple 内置应用冲突的条目应移除,避免同一应用出现两个名称来源和两个备注来源。
- 用户要求汇总方案、形成 todo list,并分工执行。
已完成事项
- 形成并执行方案:
- Apple 默认应用资源成为 Apple 内置应用名称/备注/分类的唯一项目内权威来源。
- SmartStart 大 catalog 不再携带
com.apple.* 默认应用条目。
- macOS bundle 自带本地化名称仍作为 Apple 官方系统来源优先使用;Apple 独立表作为 fallback 和默认备注来源。
- 新增 Apple 独立资源:
Research/AppleDefaultApps/AppleDefaultApps.source.csv
Research/AppleDefaultApps/AppleDefaultApps.base.json
Research/AppleDefaultApps/AppleDefaultApps.manifest.json
Research/AppleDefaultApps/AppleDefaultApps.localizations.<lang>.json 共 29 个语言文件
Research/AppleDefaultApps/Scripts/build-apple-default-apps.mjs
- 新增 runtime:
Apptag/AppleDefaultAppCatalog.swift
- 支持 bundle ID 匹配、Apple 默认备注、Apple 分类、familiar 判断、语言 fallback、fingerprint 保护和 deflate 资源读取。
- 修改 runtime 边界:
DataLayer.swift:Apple 默认备注播种改用 AppleDefaultAppCatalog.defaultNote(for:),写入 .appleDefault;用户清空备注继续写 .manual 空 fingerprint。
ContentView.swift:语言切换时同时 relocalize Apple 默认备注和 SmartStart 默认备注。
SmartStartService.swift:Apple 分类走 Apple 独立 catalog;SmartStart 不再暴露 defaultNote(for:) 给 Apple 播种使用;SmartStart apply 保持不覆盖 .manual。
- 删除旧
Apptag/AppleDefaultAppNotes.swift,避免继续误用中文硬编码或旧 fallback。
- 清理 SmartStart 资源:
- 从
SmartStart_UltimateDefaultCatalog.csv 移除 77 条 com.apple.* 行。
- 从
SmartStart_UltimateDefaultCatalog.base.json 移除 77 条 Apple runtime entries。
- 从 29 个
SmartStart_UltimateDefaultCatalog.notes.<lang>.json 移除 2233 条 Apple notes。
- 更新 SmartStart manifest 计数。
- 修改
Research/SmartStart/Scripts/build-ultimate-default-catalog.mjs:未来 SmartStart CSV 若出现 com.apple.* 会直接失败,不再允许重新生成脏数据。
- 修改构建脚本:
build.sh 复制 AppleDefaultApps.base.json 和 AppleDefaultApps.manifest.json。
- 29 个 Apple localization JSON 压缩为
.json.deflate 打进 app bundle。
- 构建时禁止未压缩 Apple localizations 被打进 bundle。
- 新增 QA:
Scripts/apple_default_apps_resource_qa.sh
Scripts/apple_default_note_policy_qa.sh
- 重写
Scripts/smartstart_catalog_resource_qa.sh,断言 SmartStart 无 Apple 冲突。
- 更新版本:
Apptag/Info.plist:7.8.18 / 20260608.0126
CHANGELOG.md:新增 7.8.18;标记 7.8.17 已废弃、未继续发布。
QA 与构建证据
Scripts/apple_default_apps_resource_qa.sh
- PASS:77 apps、29 languages、notes <= 80、runtime resource boundary PASS。
Scripts/smartstart_catalog_resource_qa.sh
- PASS:29 languages、3453 non-Apple entries、29 notes catalogs no Apple default conflicts。
Scripts/apple_default_note_policy_qa.sh
- PASS:Apple defaults、SmartStart defaults、manual notes 分离。
Scripts/quick_search_app_name_qa.sh
- PASS:贝锐向日葵被控 wrapper wins over nested isunclient。
Scripts/quick_search_system_app_qa.sh
- PASS:Keychain Access / 钥匙串访问 indexed search candidates。
APP_BUILD=20260608.0126 bash build.sh
- PASS:生成
/Users/ar/Projects/Taglauncher-7.8.15-source/build/TagLauncher.app。
- bundle 验证:
CFBundleShortVersionString=7.8.18
CFBundleVersion=20260608.0126
codesign --verify --deep --strict --verbose=2 build/TagLauncher.app PASS。
- bundle 资源:Apple base 77 条、Apple localization deflate 29 个、SmartStart entries 3453、SmartStart Apple entries 0、SmartStart notes deflate 29 个、未压缩 Apple/SmartStart notes 0。
未决问题
- 当前产物是本地 QA
.app,不是正式冻结发布包。
- 正式发布还需要后续执行冻结、提交、release manifest、tag、DMG/App Store 包和 App Store 资料整理。
- 工作区仍包含之前已有的 Release 截图资料脏改,本轮未处理也未回滚。
后续建议
- 用户确认本地 QA 结果后,再执行正式冻结流程。
- 冻结前应整理工作区,区分本次 Apple/SmartStart 修复与之前 Release 截图资料改动。
- 正式分发时按发布规则生成
.dmg、manifest、SHA256、tag,并重新整理 App Store 上传资料。