# 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..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..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 上传资料。