# TagLauncher Changelog ## [7.8.23] — 2026-06-08 - 收敛 App Grid 顶部/侧边 tag hover 交互:鼠标悬停 tag 只保留高亮/填色,不再自动滚动到分组,避免 hover 与内容滚动互相触发造成可感知抖动 - 点击 tag 仍会滚动到对应分组,保留原有显式导航语义 - 新增项目代码治理入口文档,明确唯一源码根目录、Git/QA/发布冻结与构建产物规则 - 版本号更新为 `7.8.23`,Build 更新为 `20260608.2356` ## [7.8.22] — 2026-06-08 - 补齐 Apple 默认应用 catalog 对 `/System/Library/CoreServices/Applications` 的覆盖:钥匙串访问、归档实用工具、扩充槽实用工具、反馈助理、无线诊断等系统内置工具现在都有默认名称和备注 - Apple 默认应用资源从 77 条扩展到 89 条;补齐新增 CoreServices 应用的 29 语言名称和备注 - Apple 默认资源 QA 现在会按 AppIndexer 的系统扫描路径全量检查,当前系统中会被扫到的 `com.apple.*` 系统 app 不允许漏出 catalog - Apple 默认资源 QA 增加干净用户多语言门禁:非中文语言的默认备注不得等于简体中文源备注,防止日文/英文等环境首次写入中文备注 - 版本号更新为 `7.8.22`,Build 更新为 `20260608.1324` ## [7.8.21] — 2026-06-08 - 修复 Apple 内置应用 29 语言默认备注资料质量问题:英语、法语、日语改为人工精简版,并清理其他语言中 79/80 字符边界处的硬截断半句 - Apple 内置应用翻译源新增幂等修复脚本,避免后续生成资源时再次把机器截断文案写入运行时 catalog - Apple 默认应用 QA 同时校验翻译源和生成资源;备注超过 80 字直接失败,达到 78 字以上也失败,防止接近上限的半句再次进入发布包 - 版本号更新为 `7.8.21`,Build 更新为 `20260608.1221` ## [7.8.20] — 2026-06-08 - 修复用户已经处在英文/目标语言时,启动 App 不会触发语言切换事件,导致旧 Apple 默认中文备注仍留在本地数据库的问题 - App 启动后会全局扫描当前应用并重本地化 `.appleDefault` 与 `.catalogDefault` 默认备注;语言切换后也走同一全局路径 - Apple 默认备注策略 QA 增加启动路径检查,确保旧默认备注不会依赖用户手动再切一次语言才更新 - 版本号更新为 `7.8.20`,Build 更新为 `20260608.1030` ## [7.8.19] — 2026-06-08 - 修复在 Settings / 菜单栏切换语言时,Apple 默认应用备注重本地化可能没有执行的问题:默认备注更新不再依赖 App Grid 的 `ContentView` 是否正在显示 - 语言切换后由 AppDelegate 全局扫描当前应用并重本地化 `.appleDefault` 与 `.catalogDefault` 备注,随后广播数据刷新 - Apple 默认备注策略 QA 增加全局语言切换路径检查,防止备注重本地化再次只挂在 App Grid 层 - 版本号更新为 `7.8.19`,Build 更新为 `20260608.1023` ## [7.8.18] — 2026-06-08 - 将 Apple 系统内置应用从 SmartStart 大 catalog 中彻底拆出:Apple 默认应用名称、分类和 29 语言备注改由 `AppleDefaultApps` 独立资源管理 - 从 SmartStart CSV、runtime base 和 29 个 notes catalog 中移除 77 条 `com.apple.*` 条目,避免同一个 Apple 应用出现两套名称/备注来源 - 新增 `AppleDefaultAppCatalog` runtime loader:Apple 默认备注写入 `.appleDefault`,SmartStart 默认备注继续写 `.catalogDefault`,用户编辑或清空继续写 `.manual` - 语言切换时只重本地化 fingerprint 仍匹配默认值的 Apple/SmartStart 默认备注;用户手动编辑或清空的备注不会被切语言、扫描刷新或 SmartStart apply 补回 - Apple 默认应用资源新增 29 语言质量门禁,SmartStart 资源 QA 改为断言不得再包含 Apple 默认应用冲突条目 - 版本号更新为 `7.8.18`,Build 更新为 `20260608.0126` ## [7.8.17] — 2026-06-08 - 已废弃,未作为发布包继续提交:该版本仍把 Apple 默认应用备注接入 SmartStart 大 catalog,非中文备注质量和资源边界不符合发布标准 - 后续由 `7.8.18` 的 Apple 独立资源方案替代 ## [7.8.16] — 2026-06-07 - 修复部分 wrapper / iOS-on-Mac 应用只显示内部英文 bundle 名的问题:App Grid 和 Quick Search 现在会把 Finder / Spotlight 的本地化显示名作为显示兜底 - 增加“贝锐向日葵被控 / isunclient”结构的 Quick Search 名称回归检查,确认外层中文 wrapper 优先、内层 helper app 不进入索引 - 版本号更新为 `7.8.16`,Build 更新为 `20260607.2329` ## [7.8.15] — 2026-06-05 - 修复 App Grid 再次打开时可能一直转圈、无法显示应用图标的问题:overlay 每次新建 `ContentView` 时,即使应用索引缓存仍有效也会先 hydrate 界面数据 - 应用启动后在后台预热应用索引,减轻首次打开 App Grid 的等待时间 - 版本号更新为 `7.8.15`,Build 更新为 `20260605.2337`(2332 为同版本首次构建) ## [7.8.14] — 2026-06-05 - 修复 Quick Search 和 App Grid 没有扫描 `/System/Library/CoreServices/Applications`,导致“钥匙串访问 / Keychain Access”等系统应用无法被检索和启动的问题 - 该目录纳入轻量应用目录签名检查;目录未变化时仍不会触发额外索引刷新,避免拖慢打开 App Grid / Quick Search 的体验 - 窗口 QA 坐标辅助脚本同步 Quick Search 面板识别条件,避免发布前 QA 被旧高度阈值误拦截 - 版本号更新为 `7.8.14`,Build 更新为 `20260605.0150` ## [7.8.13] — 2026-06-04 - 修复 App 运行期间新安装应用后,App Grid 和 Quick Search 仍复用旧应用索引、无法立即检索到新应用的问题 - App Grid / Quick Search 打开时会轻量检查标准应用目录签名;签名未变化时不刷新也不重建界面,只有目录变化时才后台重扫 - 刷新过程中再次打开 App Grid 或 Quick Search 会合并一个后续刷新请求,避免新安装发生在刷新窗口内被漏掉 - 窗口 QA 对 Dock 点击打开、App Grid 内打开 Quick Search 和 Quick Search 结果坐标读取增加短重试,避免系统事件或窗口列表瞬时抖动导致误判 - 版本号更新为 `7.8.13`,Build 更新为 `20260604.1121` ## [7.8.12] — 2026-06-04 - 修复 Quick Search-only 模式刚打开后可能被过期鼠标关闭事件立即关掉的问题;现在 `Fn + Space` 打开后候选面板会保持稳定,键盘取消和再次按 `Fn + Space` 仍可立即关闭 - 窗口 QA 增加对合成 `Fn + Space` 投递的重试,并把 Quick Search 结果点击坐标修正到首条结果行中心,避免测试误点面板背景 - 本次只收敛 Quick Search 打开/关闭时序和 QA 覆盖,不改搜索匹配、App Grid 布局、Settings、文件面板或窗口层级策略 - 版本号更新为 `7.8.12`,Build 更新为 `20260604.0105` ## [7.8.11] — 2026-06-03 - 优化 Quick Search 结果行右侧标签显示:短标签完整显示,右侧标签列右对齐并减少不必要留白 - 修复安装/卸载应用后 Quick Search 应用索引滞后的问题;应用目录变化后不再复用旧扫描缓存 - Quick Search 搜索结果会过滤磁盘上已不存在的 `.app`,避免用户点到已卸载应用 - 修复同一个 Bundle ID 但 App 名称不同的应用被错误去重的问题;例如 `PrivateVoice Input` 和 `PrivateVoice Dictation` 现在可以同时进入 App Grid 和 Quick Search - 版本号更新为 `7.8.11`,Build 更新为 `20260603.2149` ## [7.8.10] — 2026-06-02 - 修复 Quick Search 面板四个圆角处出现脏色块的问题;面板内容改为按圆角形状裁剪,避免透明窗口边缘和背景叠加产生视觉瑕疵 - 优化 Quick Search 阴影表现:为独立面板预留阴影外扩空间,避免阴影被窗口边界裁切,并增强浮层感 - 本次只调整 Quick Search 面板视觉层,不改搜索匹配、快捷键、App Grid 入口、Dock 图标或窗口路由逻辑 - 版本号更新为 `7.8.10`,Build 更新为 `20260602.2302` ## [7.8.9] — 2026-06-02 - 新增 App Grid 拖拽到标签栏建立关联:在 5 种 App Grid 视图中,App 图标可拖到顶部、左侧或右侧标签名称上,放手后追加该标签关联 - 拖到标签名称时复用标签排序的视觉反馈:目标标签浮起,其他标签变暗,帮助用户确认即将生效的标签 - 标签栏 drop 只追加目标标签,不删除原有标签;已有关联时不重复写入 - 复用现有 App 拖拽协调器并增加 drop-target hover 通知,避免新增平行拖拽系统 - 版本号更新为 `7.8.9`,Build 更新为 `20260602.1929` ## [7.8.8] — 2026-05-31 - 修复全局 `Fn + Space` Quick Search-only 场景下,鼠标在候选区 hover 或点击结果后 App Grid / Overlay 可能残留或重新冒出的问题 - Quick Search 结果点击改为在鼠标事件完成后的主队列启动,避免 AppKit `mouseDown` 与窗口关闭交叉导致背板露出 - Overlay 关闭时不再复用已隐藏的旧 `NSPanel`,每次关闭都释放窗口实例,下一次显示重新绑定当前 Space,减少隐藏 Dock / 全屏 / Split View 场景下的幽灵窗口风险 - 移除顶部 AppKit 标签栏下方多余的浅灰色滚动条,同时保留标签栏横向滚动能力 - 加固 Dock 图标显式打开 App Grid 的判定:必须是最近真实鼠标点击且位于 Dock 区域,避免重复启动或程序化打开误触发 App Grid - 窗口 QA 增加隐藏 Dock 下 Quick Search hover、点击搜索结果不弹 App Grid 的专项回归,并继续覆盖全屏、Split View、Settings、文件面板、Dock 图标和滚动后键盘路由 - 版本号更新为 `7.8.8`,Build 更新为 `20260531.1601` ## [7.8.7] — 2026-05-31 - 修复关闭“Show in Dock”后用主快捷键打开 App Grid 时 TagLauncher Dock 图标仍会闪现的问题;隐藏 Dock 图标设置现在严格生效 - 恢复“Show in Dock”开启时点击 Dock 图标打开 App Grid 的交互,同时继续阻止程序化重复启动误唤出 App Grid - 加固 overlay 显示后的窗口 frame 复核,避免隐藏 Dock / 多屏 / 全屏场景下系统坐标变化导致 overlay 偏移 - 窗口 QA 增加 Dock 点击、隐藏 Dock 主快捷键、重复启动不弹 App Grid 的组合回归 - 版本号更新为 `7.8.7`,Build 更新为 `20260531.0252` ## [7.8.6] — 2026-05-31 - 修复未按主快捷键时 App Grid 可能被重复启动或外部激活路径误唤出的问题;App Grid 现在只由主快捷键或状态栏显式命令打开 - 加固重复实例移交逻辑:默认不再显示 App Grid,非显示型重复实例先切到 accessory,避免产生多个 Dock 图标 - 窗口 QA 增加“重复启动不显示 App Grid、不增加 Dock 图标”的回归用例 - 版本号更新为 `7.8.6`,Build 更新为 `20260531.0146` ## [7.8.5] — 2026-05-30 - 优化设置页语言列表布局:语言页从两列改为三列,并使用下方空白区域,默认可显示更多语言选项 - 版本号更新为 `7.8.5`,Build 更新为 `20260530.1744` ## [7.8.4] — 2026-05-30 - 修复全局 `Fn + Space` Quick Search 快捷键不能像 Spotlight 一样反复开关的问题;现在连续按会按 `出现 -> 消失 -> 出现 -> 消失` 循环 - 复用键盘关闭路径,Quick Search-only 模式关闭时会同步隐藏 overlay,避免残留透明窗口 - 版本号更新为 `7.8.4`,Build 更新为 `20260530.1727` ## [7.8.3] — 2026-05-30 - 修复设置窗口宽度不足导致系统 `Navigation Tab Bar` 折叠入口固定出现的问题,设置页签恢复直接可见 - 修复隐藏 Dock 图标时 Quick Search 独立唤出会导致 Dock/菜单图标短暂闪现的问题,同时保持输入框自动获得焦点 - 版本号更新为 `7.8.3`,Build 更新为 `20260530.1652` ## [7.8.2] — 2026-05-30 - 修复全局 `Fn + Space` 唤出 Quick Search 后输入框未立即获得焦点的问题,用户可以唤出后直接输入 - 修复只想打开 Quick Search 时 App Grid 主界面偶发被带出的竞态问题 - 补强连续快速按 `Fn + Space` 的 quick-only 会话隔离和防抖,避免 App Grid 被误渲染 - 补强 Quick Search 独立面板成为 key window 时的 `Esc` 兜底处理,避免出现退不出的残留 overlay - 版本号更新为 `7.8.2`,Build 更新为 `20260530.1557` ## [7.8.1] — 2026-05-29 - 新用户首次安装时,App Grid 默认图标大小从 `80` 调整为 `64`,让初始界面更紧凑;已有用户已保存的图标大小设置不会被覆盖 - 版本号更新为 `7.8.1` ## [7.8.0] — 2026-05-29 - Quick Search 结果列表改为 AppKit-backed 渲染,保留原搜索匹配和启动逻辑,同时提升键盘选择、滚动跟随和结果列表稳定性 - Quick Search 从主 overlay SwiftUI 层拆出为独立 `NSPanel`,并保持与 AppGrid 同层级显示,避免全屏/Split View 场景下窗口层级或 Space 行为异常 - 新增 `OverlayWindowController`,将 overlay 窗口实例、Space 避让、show/focus/hide、屏幕选择、全屏/Split View 判定从 AppDelegate 中收口 - 新增 `AppLibraryController` 和 snapshot 数据刷新管线,集中处理 App 扫描、TagDatabase reconcile、Smart Start 应用、Quick Search 文档和标签颜色/顺序组装 - 设置页 Smart Start 路径模块化,系统智能化初始分类的扫描、应用和 snapshot 组装改由 `AppLibraryController` 统一处理 - 修复滚动 AppGrid 后 `Esc` 偶发无法关闭、`Space` 偶发无法唤出 Quick Search 的问题;overlay 键盘处理新增 AppKit `sendEvent` 兜底,AppGrid 滚轮进入时会重新声明 key/front - 优化 AppGrid 滚动期间的刷新频率:滚动 burst 期间不再反复跨 SwiftUI 写入 hover 状态,滚动停止后再恢复 hover replay 和 visible item runtime state - 窗口 QA 脚本补强滚动后 `Space` / `Esc` 连续循环验证,并继续覆盖全屏、Split View、Settings、文件面板、Force Quit、Dock 图标重复和屏幕跟随 - 版本号更新为 `7.8.0` ## [7.7.0] — 2026-05-28 - 标签栏完成 AppKit 化,支持顶部、左侧、右侧三种位置下的 AppKit-backed 标签导航 - 标签栏新增长按拖拽排序,排序命中、持久化和标签顺序刷新走 AppKit 路径 - 优化标签拖拽态视觉:拖拽中的标签增加浮起阴影、轻微放大和更高层级,用户更容易判断当前拖拽对象 - 拖出容器空隙时新增单标签移除确认:确认后只移除来源容器代表的那个标签;可选择“知道了,以后不用再提醒我” - 拖到“未分类”时新增独立“不再提醒”选项;该开关与拖到空隙移除单标签的开关分离,避免混淆批量移除和单标签移除 - 修复 App 图标圆角外区域白边问题,当前 grid/rainbow AppIcon 的四角透明;清除旧“两张标签”图标生成逻辑,并让构建优先从 `AppIcon.appiconset` 生成 bundle 图标 - 清理旧 SwiftUI 浏览态 grid 命名残留,将 `AppGridItem.swift` 改名为 `AppGridSupport.swift` - 版本号更新为 `7.7.0` ## [7.6.0 App Store Freeze] — 2026-05-24 - 冻结首轮 Mac App Store 准备资料,以本地 QA 通过 Build `20260524.1849` 为准 - 修复 Split View / 全屏 Space 中从 AppGrid 唤出 Quick Search 或 Settings 时触发 Space 滑动的问题,二级窗口现在继承同一次 overlay 会话的避让策略 - AppGrid、Quick Search、Settings、文件面板、强制退出窗口、多屏跟随、Dock/菜单栏状态已通过 `Scripts/window_logic_qa.sh` 全量窗口 QA - 当前冻结 DMG SHA-256:`dc5bc9cf90b9e04a9e4fda155b757e6e0af681ff1b79bf109552ae0c3ce2a193` - App Store 上传仍需 Apple Developer 账号中的 Mac App Distribution / Mac Installer Distribution 证书和 `com.taglauncher.app` 的 Mac App Store provisioning profile ## [7.6.0] — 2026-05-20 - 重写默认 App 网格主路径:`coloredGridContainer` / `gridContainer` 改为 AppKit-backed 主网格,使用 `NSCollectionView` 管理分组卡片、滚动、图标 hover 和拖拽 drop,默认路径不再依赖 SwiftUI `LazyVStack` / `LazyVGrid` 布局事务 - 修复 AppKit-backed 网格容器对齐:用自定义 `NSCollectionViewLayout` 复刻原来的行/span 规则,同一行卡片顶边一致,并按该行最高图标行数统一容器高度 - 针对假死报告中的 SwiftUI `AttributeGraph` / Lazy layout 栈,新增主网格热键开关与打开后等待采样验证,20 次 overlay 开关后 CPU 回到空闲水平且采样未再出现 `LazyLayoutViewCache`、`LazyStack`、`ForEachState` - 统一运行时品牌标识:本地数据目录改为 `~/Library/Application Support/TagLauncher`,Bundle ID、LaunchAgent、状态栏 autosave 名和 Smart Start 内置目录中的 TagLauncher 自身条目同步改为 TagLauncher 命名空间,并移除不再需要的旧路径沙盒临时例外 - 优化 Smart Start 包体:App bundle 只打包 base/manifest 与按语言独立压缩的 notes 资源,构建时拒绝旧单体 JSON、CSV、translation cache、invalid cache 和未压缩 notes 混入包内 - 扩展 Smart Start 运行时分类体系,支持新版终极目录中的 GTD、笔记、会议、Office、PDF、API、数据库、DevOps、IDE、终端、窗口管理等更细分类 - Smart Start 运行时资源改为 base catalog + 29 个按语言拆分的 notes 文件,正常路径只加载当前语言和必要 fallback,不再长期持有 29 种语言 notes - Smart Start 资源生成器新增 Swift runtime 分类兼容门禁、稳定 `entryID`、manifest 和 split resource 输出,避免未知分类被静默丢弃 - Smart Start 默认用途备注新增来源 metadata,系统默认备注可随语言切换更新,用户手写备注不会被语言切换覆盖 - 打包脚本改为只复制 split Smart Start 资源到 App bundle,不再把旧单体 runtime JSON/CSV 作为首发运行时资源 - 移除 Smart Start 终极默认目录中错误的 `thunder` 条目,避免将 Thunder 错分为 VPN/安全网络工具并写入错误用途备注 - 优化主界面滚动性能:网格容器改为懒加载,并在滚动期间临时冻结 App hover 放大、用途气泡和容器 hover 高亮 - 将主界面的分组结果与网格容器行布局改为缓存状态,避免鼠标 hover、搜索输入等轻量状态变化反复触发分组和布局计算 - 优化 Quick Search:打开浮层时复用已加载 App 数据,不再每次打开都触发全量刷新;搜索字段在索引阶段预计算,输入时避免重复规格化、首字母和拼音候选生成 - Quick Search 增加 App 本地化显示名索引:读取所有语言 `InfoPlist.strings` 显示名,并用 Spotlight display name 兜底,让 AweSun 这类英文文件名 App 可通过“贝锐向日葵/向日葵”搜索命中 - 对含非拉丁文字的 App 显示名启用拉丁化/转写候选,支持 `xiangrikui`、`beirui`、`xrk` 等连续片段和非连续缩写命中;该规则仅限 App 显示名,不扩散到 Bundle ID 或纯拉丁 App 名 - 减少 App 图标重绘:只有图标对象或尺寸变化时才触发 `NSView` 重绘 - 将当前满意版标记为 `7.6.0`,作为后续性能优化前的稳定归档基线 - 保留 7.5.1 的 Quick Search、快捷键状态、Smart Start 目录和文档沉淀成果,不引入新的功能变更 - 版本号更新为 `7.6.0`,基线 Build 为 `20260520.1250`;本次本地化显示名搜索验证 Build 为 `20260520.1452` ## [7.5.1] — 2026-05-19 - 设置页新增独立「快捷键」页签,将主界面快捷键与 Quick Search 直接快捷键管理从「通用」页拆出 - 移除设置页中与当前快捷键设置重复的静态按键帽提示,避免「关于」等页面继续展示旧快捷键视觉元素 - 按 C 版规则收窄「快捷搜索」匹配:短查询不再放大无关结果,备注支持中文词拼音连续片段命中,Tag 支持原文非连续字符匹配,Bundle ID 与内部 Bundle 名仅支持精确/前缀命中 - 移除快捷键自定义能力,快捷键页面只展示固定快捷键信息;构建号格式改为 `yyyyMMdd.HHmm` 并在打包时自动刷新 - 修复全局快捷搜索失焦不关闭的问题:点击搜索框外部、点击其他 App 或 App 失去焦点时,会像 Spotlight 一样自动收起 - 清理 Smart Start 默认目录备注中的开头标点,移除高置信别名重复项,并禁止用 App 名称加分类标签拼凑伪备注 - 重新打包最新 Smart Start 终极默认分类目录,确保 App bundle 内置资源同步到最新 CSV/JSON - 快捷键页面和菜单改为显示真实快捷键注册状态;固定快捷键注册失败时显示「快捷键不可用」,并只在状态变化后打开设置页时给出黑底白字提示 - 修复构建流程:Build 号只写入 App bundle 内的 `Info.plist`,打包脚本会验证源码 `Apptag/Info.plist` 未被构建过程改动 - 版本号更新为 `7.5.1`,Build 更新为 `20260520.1228` ## [7.5.0] — 2026-05-19 - 新增 Quick Search:在 App list 中按 `Space` 打开快速搜索浮层,支持按 App 名称、本地化名称、标签、备注和 Bundle ID 本地搜索 - Quick Search 支持精确、前缀、子串、首字母缩写、非连续字符、中文直接匹配和本地中文拼音候选匹配 - 空查询显示最近/常用 App 建议,支持键盘上下选择、回车启动、鼠标悬停选择和点击启动 - 新增直接打开 Quick Search 的可配置全局快捷键,默认关闭,并支持快捷键录制、清除、恢复默认、重试注册和冲突状态提示 - 快捷键冲突状态区分 `Active` / `Conflict` / `Disabled`,已知 macOS 默认快捷键显示专用说明,注册失败时保留旧快捷键可用 - Quick Search 使用 macOS Spotlight 风格玻璃面板,支持外部点击关闭、Esc 两级退出、结果滚动和稳定顶部定位 - 启动历史增加最近成功启动时间,用于 Quick Search 空查询建议排序;启动失败不更新历史 - 所有 Quick Search 用户可见文案接入本地化资源 - 版本号更新为 `7.5.0`,Build 更新为 `20260519.0750` ## [7.3.5] — 2026-05-18 - 为菜单栏图标设置稳定 `NSStatusItem.autosaveName`,让 macOS 与 Thaw 更容易识别为同一个菜单栏项 - 菜单栏刷新时复用已有 `NSStatusItem`,避免语言刷新等场景反复删除重建导致位置记忆失效 - 为菜单栏按钮补充稳定 identifier 与 accessibility 标识,提升第三方菜单栏管理工具识别稳定性 - 修复全新用户使用英文等非中文界面时,部分 Apple App 默认用途备注仍被旧路径种成中文的问题 - 修复拖动 App 到“未分类”确认/取消后,浮层可能关闭且图标持续抖动、拖拽状态残留的问题 - 优化标签列表拖拽排序反馈:移除标签无限抖动,改为拖拽时其他标签降透明度,并缩短长按响应时间 - 修复设置页“应用系统智能化初始分类”确认提示可能跑到设置窗口背后、被遮挡的问题,并优化为更清晰的实底确认框 - 修复右侧标签列表点击后可能停留在拖拽视觉状态,导致后续标签无法正常点击切换的问题 - 修复拖拽状态重置后 App 图标网格可能大量不渲染的问题,确保平铺、容器、网格视图切换后图标完整显示 - 修复快速滑过 App 图标时旧用途气泡可能冻结在上一 App 上的问题,让新 hover 目标主动接管气泡状态 - Smart Start 初始化目录切换为使用最新整理的 `tager` 字段生成运行时 JSON,覆盖 `5231` 个 App,并将 `4431` 条中文默认备注扩展为 29 种语言运行时备注 - 统一 Smart Start 默认系统标签颜色分组,让网络/文件流、工作知识、开发 AI、内容媒体、系统能力等语义更接近的标签使用更一致的默认颜色 - 版本号更新为 `7.3.5`,Build 更新为 `20260518.0744` ## [7.3.4] — 2026-05-18 - 优化应用列表打开速度:覆盖层窗口不再每次显示都销毁重建,减少重复初始化 - App 扫描增加会话缓存,避免短时间内反复加载全部应用图标导致每次打开都长时间等待 - 避免应用激活通知和首次显示同时触发重复全量刷新;刷新进行中时只保留必要的强制刷新请求 - 版本号更新为 `7.3.4`,Build 更新为 `20260518.0743` ## [7.3.3] — 2026-05-18 - 拖拽 App 时会立即关闭并禁用 App 用途气泡,避免拖向目标容器时旧气泡继续遮挡视线 - 「归类为未分类」确认浮层出现前会清理 App 气泡,确认决策期间不再显示背景 App 的说明气泡 - 版本号更新为 `7.3.3`,Build 更新为 `20260518.0742` ## [7.3.2] — 2026-05-18 - 优化设置页「标签」界面布局,将标签列表内容区整体居中,避免左侧拥挤、右侧大面积留白 - 标签名称区域改为自适应占用剩余空间,长标签名使用中间截断并保留悬停提示,兼顾不同语言长度 - 版本号更新为 `7.3.2`,Build 更新为 `20260518.0741` ## [7.3.1] — 2026-05-18 - 将拖动 App 到「未分类」时的确认提示从系统弹窗改为应用列表内部浮层,视觉样式与现有确认反馈保持一致 - 未分类确认浮层现在只覆盖 TagLauncher 应用列表窗口,提供「取消 / 确认」两个明确操作,并支持右上角关闭与 Esc 取消 - 版本号更新为 `7.3.1`,Build 更新为 `20260518.0740` ## [7.3.0] — 2026-05-18 - 修复 Apple 系统自带 App 被拖入其他标签后从「Mac自带」分组消失的问题,「Mac自带」现在作为客观属性始终保留 - 气泡提示设置改为「全部应用 / 仅不常用应用」二选一,并补齐多语言文案 - 统一 App 图标 hover 焦点状态,降低快速滑过、视图复用或同一 App 出现在多个分组时出现小名字残影的概率 - 当气泡提示范围选择「全部应用」时,hover 不再额外显示 App 图标下方的小名字,避免和大气泡重复 - 版本号更新为 `7.3.0`,Build 更新为 `20260518.0739` ## [7.2.0] — 2026-05-18 - 统筹优化 App hover 交互:容器、图标和气泡不再同时做大幅动画,避免快速滑过时出现慢动作和卡顿 - 容器 hover 从凸起缩放改为轻量背景/阴影反馈,让图标放大成为主要 hover 反馈 - App 气泡提示改为稳定淡入,不再使用缩放弹跳动画 - App 气泡定位改为使用 overlay 内部同一坐标系,修复纵向滑动时气泡和光标/App 距离越来越远的问题 - App 气泡增加 macOS popover 风格尖角,明确指向触发它的 App - 版本号更新为 `7.2.0`,Build 更新为 `20260518.0738` ## [7.1.0] — 2026-05-18 - 生成 Smart Start 终极默认分类表:合并 5000 App 主表、职业画像 App 表、游戏表、Top 1000 复核表和 Apple 自带 App 数据 - 终极表覆盖 `5231` 个唯一 App,剩余 `other` 数量降为 `0`,并为 `543` 个 App 准备默认用途备注 - Smart Start 运行时改为优先读取终极默认分类 JSON,支持按当前语言种下默认备注 - 有默认备注的 App 在系统种下备注时会自动标记为“不常用”,但不覆盖用户已有备注 - 设置页「数据」面板加宽,修复英文等语言下方案标签文字被截断的问题 - 首次安装默认设置调整:跟随系统语言,开机登录/Dock 显示/隐藏 App 名称默认打开,列表默认 `Colored Grid`、右侧标签、标签字号 `22`、图标大小 `80` - 用户主动切换语言时,Smart Start 22 个系统标签会同步切换到对应语言 - 系统内置默认用途备注会在确认未被用户改写时,随语言切换刷新为对应语言版本 - 系统标签增加稳定身份字段,手动新建的同名标签保持用户自定义属性,语言切换时不会被误改 - 用户删除系统标签后会记录为已禁用,普通 Smart Start 刷新不会偷偷加回;显式应用系统初始方案时会重建 - 显式应用系统智能化初始分类时固定创建 22 个系统标签,包含暂时没有 App 的 `transfer` 等标签 - 应用列表右上角编辑/设置按钮统一为固定浮层锚点,左侧、右侧、顶部标签三种视图下位置保持一致 - 允许将 App 拖到“未分类”容器,确认后会解除该 App 当前全部标签关联,误拖可取消 - 拖到“未分类”时不再解除“不常用”状态,“不常用”只通过自动规则或用户手动操作改变 - 优化应用列表动效性能:移除滚动时每个 App 图标持续追踪全局坐标的状态写入,避免大量 hover/scroll 重绘 - 标签拖拽排序改为拖动结束后再写入数据库,减少拖动过程中的磁盘写入和卡顿 - 数据刷新不再用 UUID 强制重建整棵 App 列表,降低分类变更和拖拽后的大范围重布局 - 设置页导出/导入分类布局时,系统文件选择面板改为挂在设置窗口上的 sheet,避免被设置窗口层级挡住 - 补齐设置页「数据」面板分类方案管理文案的多语言适配,方案名前缀和“应用/恢复”等操作会跟随当前语言刷新 - App 图标切换为最终确认的轻量版 `icns`,打包时直接使用 `Research/logo/TagLauncherIcon_v2_light.icns` - 菜单栏图标改为加载最终确认的 `SVG` 矢量资源,保留模板图标特性以适配系统明暗菜单栏 - 放大菜单栏图标的矢量主体并将显示尺寸调整为 `19pt`,改善菜单栏中图标过小、不清晰的问题 - 修正 build 20260518.0731 引入的 hover 手感问题:App 图标 hover 放大改为极短交互动画,避免鼠标划过时出现慢动作拖尾 - 修正容器 hover 凸起像慢镜头的问题:容器 lift 从 `0.25s` spring 改为极短 `easeOut`,保留反馈但去掉拖尾 - 新增分类方案自动快照:用户主动改变标签归属、标签顺序、标签颜色、标签创建/删除/重命名时,会自动保存变动前方案到本地备份 - 自动快照采用批次合并策略:同一轮连续编辑只生成一个“上一个分类方案”,当前分类方案时间戳随最新变动更新 - 自动方案备份保留 30 天,旧记录会在后续变动、打开设置、导出或退出 App 时自动清理 - 新安装 App 被扫描到但用户没有编辑时,不触发分类方案自动快照 - 打包脚本在签名前清理 App bundle 扩展属性,避免资源文件元数据导致本地签名失败 - 版本号更新为 `7.1.0`,Build 更新为 `20260518.0737` ## [7.0.19] — 2026-05-17 - 为 Apple 自带/Apple 官方 App 增加系统默认用途备注,每个 App 获得一句精简说明,作为首次使用时的小惊喜 - 默认备注只写入现有 App 备注字段,不另建用户数据存储;用户右键编辑后会继续走同一套备注逻辑 - 将 Safari、Mail、照片等高熟悉度 Apple App 排除在默认“不常用”之外,其余 Apple 自带/官方 App 默认标记为“不常用” - 版本号更新为 `7.0.19`,Build 更新为 `20260517.0719` ## [7.0.18] — 2026-05-17 - 导出文件名与设置页中的方案名称改为按当前界面语言实时重算前缀,不再沿用旧语言下保存的英文前缀 - 补全日语下的方案相关文案与按钮文本,日语界面导出时会显示日文文件名前缀 - 版本号更新为 `7.0.18`,Build 更新为 `20260517.0718` ## [7.0.17] — 2026-05-17 - 设置页「数据」里的 `Apply` / `Restore` 按钮改为自绘的稳定样式,不再依赖系统 `borderedProminent` 渲染 - 按钮在禁用、重绘或语言切换时仍会稳定显示文字,避免出现只剩空白按钮壳的情况 - 版本号更新为 `7.0.17`,Build 更新为 `20260517.0717` ## [7.0.16] — 2026-05-17 - 新安装用户首次启动时,“不常用 App 气泡提示”默认改为不勾选 - 已有用户的已保存设置保持不变,不会被这次默认值调整覆盖 - 版本号更新为 `7.0.16`,Build 更新为 `20260517.0716` ## [7.0.15] — 2026-05-17 - 修复设置页语言列表选中状态可能停留在 English 的问题:设置窗口显示时会强制同步当前实际语言 - 语言变化通知缺少 code 时也会回读当前语言,避免 UI 文案与语言选择状态不一致 - 版本号更新为 `7.0.15`,Build 更新为 `20260517.0715` ## [7.0.14] — 2026-05-17 - 导入分类与布局 JSON 时补充方案时间容错:优先读取文件名中的规范时间 `yyyy.MMdd.HHmm` - 如果导入文件名不含规范时间,则使用该 JSON 文件属性中的创建时间作为方案时间;创建时间不可用时回退到修改时间 - 导入后的当前方案名称统一规范为带时间戳的本地分类方案,避免用户自定义文件名导致方案名称缺少时间信息 - 版本号更新为 `7.0.14`,Build 更新为 `20260517.0714` ## [7.0.13] — 2026-05-17 - 设置页「数据」的分类方案面板改为固定右侧操作列,避免“应用”按钮在长方案名或布局刷新时被挤出/裁掉 - “应用”和“恢复”按钮保持同列对齐,方案名称优先截断,操作按钮优先保留 - 版本号更新为 `7.0.13`,Build 更新为 `20260517.0713` ## [7.0.12] — 2026-05-17 - 右键菜单中的“编辑用途备忘”对所有 App 开放,不再要求 App 已经属于“不常用” - 用户保存非空用途备忘时,系统会自动把该 App 标记为“不常用”,无需用户再手动归类 - hover 大号名称与用途备忘严格服从设置:开启“仅对不常用显示”时只显示不常用 App,关闭时所有 App 都可显示 - 版本号更新为 `7.0.12`,Build 更新为 `20260517.0712` ## [7.0.11] — 2026-05-17 - 设置页「数据」去掉“分类方案数据管理”重复标题,减少顶部视觉干扰 - 去掉底部快捷键提示,把页面重心保留给分类方案管理和不常用 App 气泡提示 - 将“系统智能化初始分类 / 上一个分类方案 / 当前分类方案”收紧为同一组信息,“上一个分类方案”上移到系统方案下方 - 版本号更新为 `7.0.11`,Build 更新为 `20260517.0711` ## [7.0.10] — 2026-05-17 - 进一步优化设置页「数据」布局:分类方案数据管理面板加宽,标题居中,方案行采用固定标签列对齐 - 去掉面板内“备份与恢复”小标题,将导出/导入按钮及说明文案居中显示在面板底部 - 版本号更新为 `7.0.10`,Build 更新为 `20260517.0710` ## [7.0.9] — 2026-05-17 - 设置页「数据」布局优化:将“备份与恢复”的导出/导入操作整合进“分类方案数据管理”面板,统一归入分类方案数据管理范围 - 版本号更新为 `7.0.9`,Build 更新为 `20260517.0709` ## [7.0.8] — 2026-05-17 - 分类方案名称中的生成时间改为语言无关的纯数字格式 `yyyy.MMdd.HHmm`,例如 `2026.0517.1804` - 已存在的旧式本地化日期方案名会在读取时自动规范化,导出文件名也同步使用新的数字时间格式 - 版本号更新为 `7.0.8`,Build 更新为 `20260517.0708` ## [7.0.7] — 2026-05-17 - 参考编辑按钮的稳定事件路径,将设置按钮改为发送 App 内通知,由 AppDelegate 固定监听后打开设置窗口,减少静态代理调用链路导致的点击无响应 - 版本号更新为 `7.0.7`,Build 更新为 `20260517.0707` ## [7.0.6] — 2026-05-17 - 设置页「数据」中“分类方案”标题改为“分类方案数据管理” - 调整系统智能化初始分类行布局,右侧固定显示「应用」按钮,避免长方案名挤占按钮空间 - 版本号更新为 `7.0.6`,Build 更新为 `20260517.0706` ## [7.0.5] — 2026-05-17 - 修复浮层右上角设置图标点击仍可能无响应的问题:按钮命中判断改为按鼠标真实坐标查找被点击的原生图标控件,避免 SwiftUI 包裹层误判左右按钮 - 版本号更新为 `7.0.5`,Build 更新为 `20260517.0705` ## [7.0.4] — 2026-05-17 - 设置页「数据」中新增“系统智能化初始分类”方案,用户可直接点击应用,用系统内置智能方案覆盖当前本地方案 - 应用系统智能化初始分类前增加备份提醒确认,提示用户先导出备份,用户可确认应用或取消 - 当前方案和上一个方案会自动补齐带生成日期时间的系统方案名,不再显示泛化的“当前本地方案” - 导出分类与布局时,默认 JSON 文件名改为使用当前分类方案名,而不是导出当下的时间 - 应用、导入、恢复分类方案后会通知应用列表刷新,减少设置页和主浮层显示不同步 - 版本号更新为 `7.0.4`,Build 更新为 `20260517.0704` ## [7.0.3] — 2026-05-17 - 将应用列表浮层里的编辑/设置圆形图标改为原生 AppKit 点击控件,避免 SwiftUI 全屏浮层事件分发导致设置图标点击无响应 - 从设置图标打开设置页时主动激活 App,提升 non-activating 浮层场景下设置窗口显示的稳定性 - 版本号更新为 `7.0.3`,Build 更新为 `20260517.0703` ## [7.0.2] — 2026-05-17 - 修复给 App 写备注时中文/日文等输入法候选词窗口被全屏浮层遮住,导致无法选字的问题 - 备注编辑期间会临时降低应用列表浮层层级,让输入法候选框显示在上方;退出备注编辑后恢复原最高层级 - 版本号更新为 `7.0.2`,Build 更新为 `20260517.0702` ## [7.0.1] — 2026-05-17 - 右侧标签栏模式下,编辑和设置图标改为固定横向排列,顺序为编辑在左、设置在右;标签列表从下方开始,避免互相遮挡 - 设置窗口改为由 AppDelegate 统一创建和置顶管理,保证从菜单、快捷键或设置图标打开时都能显示在应用列表视图上层 - 修复浮层点击分发逻辑过度转发 `NSControl`,导致设置图标点击可能无法打开设置窗口的问题 - 打包脚本在构建开始时读取并校验 `Info.plist` 中的版本号和 Build 号,构建日志会明确显示当前打包版本 - 版本号更新为 `7.0.1`,Build 更新为 `20260517.0701` ## [7.0.0] — 2026-05-17 - 新增 Smart Start 智能初始化分类:内置常见 macOS App 默认标签库,首次扫描后可为匹配应用生成多标签分类建议 - Smart Start 支持新用户自动应用、已有用户确认后应用,并保留应用前备份,允许从设置页查看当前/上一个分类方案并恢复 - 将 Smart Start 提示从顶部横幅改为居中确认面板,放大标题、正文和按钮,避免用户错过“应用 / 暂不应用”的关键决策 - 设置页「数据」页签显示当前分类方案和上一个分类方案名称,方案名称包含日期时间;导出分类与布局的默认文件名也追加日期时间 - 应用列表右上角新增与编辑按钮风格一致的设置图标,方便用户直接进入设置页 - 版本号更新为 `7.0.0`,Build 更新为 `20260517.0700` ## [6.0.5] — 2026-05-16 - 修正应用分类编辑页的批量操作逻辑:添加模式只追加手动勾选的标签,移除模式会先自动勾选右侧已选 App 现有的标签合集,未命中的标签置灰不可点 - 移除模式下,取消某个已有标签的勾选后,会在标签右侧显示鲜红删除图标;重新勾回后,删除图标立即消失 - 优化移除模式的左侧提示文案,明确说明只有已有标签可取消勾选,出现红色删除图标的标签会在确认后被移除 - 新增居中全屏反馈提示:点击「确认添加 / 确认移除」后,会复用“不常用 App”气泡矩形样式显示本次操作结果,并支持自动消失和右上角关闭 - 反馈统计改为真实增减计数:逐个 App 计算实际新增/移除的标签关系数,避免把原本已存在或不存在的标签重复计入 - 调整编辑页顶部排版:将本轮操作说明移到确认按钮同一行,并为长文案提供省略与悬浮完整提示;左侧“选择标签 / 拖动排序”提示改为与标签列表左边缘对齐 - 将英文标题文案由 `This edit:` 收敛为更自然的 `Action:`,并同步检查、收紧其他语言的对应表述 - 修复编辑分类页左侧 sidebar 被说明文字横向撑开的布局问题,固定左栏宽度并恢复右侧应用区紧贴分隔线展开 - 左侧 `Select tags / Drag to reorder` 提示现在严格约束在标签列表宽度内,超长时换行,不再越出左侧标签列表边界 - 去掉编辑分类页顶部居中的标题,把空间让给右侧模式说明;右侧说明现在会优先尽量完整显示,只有左右按钮区确实排不下时才从中间省略 - 修复顶部模式说明使用无限宽度参与窗口约束计算时可能触发 AppKit 约束更新异常并闪退的问题 - 修复新版 macOS 上 Safari 等系统 App 可能被扫描遗漏的问题:扫描器现在会识别搜索目录的直接 `.app` 子级、补充 Cryptex 系统应用目录,并用真实路径去重但保留稳定入口路径 - 补齐编辑模式相关新增文案到全部语言文件,避免切换语言后出现缺失键 - 版本号更新为 `6.0.5`,Build 更新为 `20260516.0610` ## [6.0.0] — 2026-05-16 - 新增“不常用”特殊系统标记:只在 App 分类编辑模式中显示,不作为普通分类出现在日常应用列表中 - “不常用”不改变 App 原有分类归属;App 仍留在原分类中,只额外获得低频标记 - 新增“不常用 App 气泡提示”开关,默认开启,放在设置页“数据”页签最上方 - 对已标记为“不常用”的 App,在开关开启后 hover 显示大号 App 名称 Bubble;有用途备注时同步显示备注 - 支持右键“不常用”App 编辑用途备忘,备注最多 80 个 Unicode 字符 - 备注数据进入分类与布局 JSON,并与“不常用”标记状态解耦:移除“不常用”标记后备注仍保留 - 编辑模式中的批量标签操作改为“添加标签 / 移除标签”双模式;右侧选中 App 不再自动反向勾选左侧标签,避免批量污染原有分类 - 为编辑模式新增只读标签状态区:单选显示当前标签,多选显示共同标签,并提示其他标签可能不同 - 新扫描到的 App 会自动标记为“不常用”,并开始统计从 TagLauncher 打开的次数;达到 100 次后,只有系统自动加上的“不常用”才会被自动移除 - 为新增功能补齐全部 29 个语言版本文案 - 版本号更新为 `6.0.0`,Build 更新为 `20260516.0600` ## [5.7.8] — 2026-05-15 - 修复 TagLauncher 浮层每次打开都会重复添加 Escape 键本地监听的问题,关闭浮层时会同步释放监听器,避免事件监听累积 - 清理普通应用列表中标签拖动排序的旧兜底逻辑,移除可能吞掉下一次点击的鼠标监听器和不可达透明点击层 - 菜单栏图标改为强制显示,移除设置页里的「显示菜单栏图标」开关,并从全部 29 个语言包同步删除该设置文案 - 清理 macOS 应用主菜单中的 Services / Hide / Hide Others / Show All 默认项,新增「显示应用列表」菜单项 - 顶部应用菜单和状态栏菜单的「显示应用列表」均使用全语言本地化文案,并用 `⌥⇧␣` 图形符号展示快捷键 - 用 SwiftUI `CommandGroup` 从源头替换 macOS 默认 Services/Hide 菜单组,并增加延迟重试清理,避免系统菜单重建后恢复旧菜单项 - 菜单栏状态项改为固定方形长度并强制 `isVisible`,降低图标被系统计算成不可见宽度的风险 - 优化 Dock 显示设置刷新逻辑:只有 `showDockIcon` 变化时才更新系统 activation policy,避免无关设置变更触发全局刷新 - 菜单栏图标改为代码自绘 template 图标,不再依赖 SF Symbol 加载,避免系统符号渲染失败导致图标不可见 - 优化「通用」设置页排版:保留顶部三个开关横排,将应用列表样式改为两列选择块,并统一后续设置行的标签列、控件列和说明文字左边缘 - 微调「应用列表样式」选择区:Flat 单独占满第一行,其余四个样式按两列两行排列,形成更稳定的视觉宽度关系 - 收窄「应用列表样式」选项块高度,并为平铺、瀑布流容器、等高网格增加小图示,帮助用户快速区分布局类型 - 在设置页的「语言」「数据」「关于」三个空白较多的页签增加 `⌥ + ⇧ + 空格键` 图形化快捷键提示,避免影响「通用」和「标签」页的主要设置/编辑区域 - 版本号保持 `5.7.8`,Build 更新为 `20260515.0583` - 同步更新 `AppStore_Submission.md` 的版本信息和 What's New ## [5.7.5] — 2026-05-14 - 新增「显示菜单栏图标」设置项,默认开启,并放在「在 Dock 中显示」之前 - 修复菜单栏小图标不显示或被系统符号渲染不稳定的问题,改为自绘 template 状态栏图标 - 修复全屏应用 Space 中打开设置时,设置窗口跑到其他窗口/屏幕的问题:设置窗口作为当前 TagLauncher overlay 的子窗口置顶显示 - 优化设置窗口关闭后 overlay 的焦点恢复,减少设置窗口和主浮层之间的层级错乱 - 为普通应用列表中的标签导航增加拖动排序退出兜底,尝试解决拖动后标签持续抖动的问题 - 版本号更新为 `5.7.5`,Build 更新为 `20260514.0575` ## [5.7.0] — 2026-05-13 - 扩展语言支持到 29 个语言版本,新增法语、德语、巴西葡萄牙语、泰语、越南语、阿拉伯语、土耳其语、印尼语、捷克语、丹麦语、荷兰语、挪威语、马来语、波兰语、罗马尼亚语、瑞典语等 - 中文保持简体/繁体支持,不增加广东话版本 - 设置页「语言」页签改为两列纵向排版,适配语言数量增加后的空间压力 - 优化语言自动匹配逻辑,支持更多系统语言代码映射 - 修复状态栏菜单项在语言切换后的刷新逻辑,避免重复创建状态栏图标 - 固定设置窗口尺寸为 880×460,减少不同页签之间的高度和宽度跳动 - 版本号更新为 `5.7.0`,Build 更新为 `20260513.0570` ## [5.6.0] — 2026-05-13 - 修复编辑模式下左侧标签拖动排序失效的问题,改用自定义手势和几何位置检测实现实时排序 - 标签拖动排序增加动态动画反馈,拖动时左侧标签顺序和右侧对应标签容器同步变化 - 普通应用列表视图中的顶部/左侧/右侧标签导航支持长按拖动排序 - 标签排序逻辑覆盖全部 5 种应用列表样式,保证标签导航顺序和应用分组布局一致 - 修复导入/导出分类与布局功能,失败时显示明确错误提示 - App Store 沙盒构建下隐藏 Launch at Login 控件,避免沙盒环境中不可用功能误导用户 - 移除已弃用的应用启动 API,统一使用现代 `NSWorkspace.OpenConfiguration` - 新增 App Store 沙盒 entitlements,支持 App Store 构建验证 - 版本号更新为 `5.6.0`,Build 更新为 `20260513.0560` ## [5.5.0] — 2026-05-11 - 新增设置页第一个页签「语言」,原有「通用 / 标签 / 数据 / 关于」整体后移 - 支持在设置页直接切换语言,菜单和设置面板实时同步刷新 - 语言切换时增加 macOS 风格的全局刷新过渡图标,降低界面瞬间重建的突兀感 - 设置窗口默认宽度扩展到 880pt,并在当前 TagLauncher 应用列表视图中央浮动置顶 - 多屏使用时,设置窗口会优先居中显示在当前 TagLauncher overlay 所在屏幕 - 数据页按钮文案由「导出 tag / 导入 tag」改为「导出分类与布局 / 导入分类与布局」,并同步所有已支持语言 - 增加旧版非沙盒数据到 App Store 沙盒容器的数据迁移逻辑,降低更新后标签和排序丢失风险 - 新增 App Store 提审资料文档,记录版本信息、隐私说明、截图建议和审核备注 - 版本号更新为 `5.5.0`,Build 更新为 `20260511.0550` ## [5.2.0] — 2026-05-11 - 重做 App 拖动预览实现,改为 CALayer / AppKit 预览层方式,提升拖动过程的稳定性和跟手感 - 优化拖动预览在 overlay 和全屏 Space 中的显示层级,减少拖动图标被遮挡或丢失的情况 - 保持拖动投放逻辑与分类容器绑定,继续支持移动/复制到目标标签 - 版本号更新为 `5.2.0`,Build 更新为 `20260511.0520` ## [5.1.12] — 2026-05-11 - 新增 `AppDragCoordinator`,集中管理 App 图标拖动预览、投放目标注册和拖放完成回调 - 优化 App 图标网格项尺寸计算,减少隐藏/显示 App 名称时的布局抖动 - 新增 `TagGroupView`,拆分标签分组容器视图逻辑,降低主视图复杂度 - 优化标签数据库导入/导出和排序数据结构处理 - 调整图标资源生成流程,删除旧 `AppIcon.iconset`,使用压缩后的 `icon-icns.icns` 降低包体体积 - 补充应用描述相关本地化文案 - 版本号更新为 `5.1.12`,Build 更新为 `20260511.0512` ## [4.0.7] — 2026-05-11 - 调整应用列表布局和 App 启动逻辑,修复部分网格容器视图下点击 App 后启动/关闭 overlay 不稳定的问题 - 更新 9 个既有语言的视图名称和说明文案 - 完善 `build.sh`,强化构建流程中的 bundle 结构、资源复制、权限设置、strip 和签名步骤 - 新增 `make_dmg.sh`,支持生成 DMG 发布包 - 版本号更新为 `4.0.7`,Build 更新为 `20260511.0407` ## [4.0.0] — 2026-05-10 - 新增「无色网格容器」和「彩色网格容器」两种 App 列表视图样式 - 网格容器按标签顺序分行排列,每行 1/2/3 个等宽容器,同一行等高,容器内通过空白网格位保持图标对齐 - 无色网格容器继承无色容器的持久填充/点击清除交互;彩色网格容器继承彩色容器的默认填色/hover 阴影交互 - 补充 9 语种新增视图名称与说明文案 ## [3.2.1] — 2026-05-10 - 固定「无色容器」交互逻辑:hover 标签或容器时保持标签色填充,再次点击标签或点击容器空白处清除填充 - 保持「彩色容器」逻辑独立:默认标签色填充,hover 仅增加阴影凸起效果 ## [3.2.0] — 2026-05-10 - 新增 App 列表显示样式「彩色容器」:所有容器默认填充标签色,鼠标 hover 容器时增加阴影凸起效果 - 将原「分组 / Container」样式改名为「无色容器」,保留无填充容器布局 - 补充 9 语种显示样式名称与说明文案 ## [3.1.35] — 2026-05-10 - 修复 overlay 显示时打开设置窗口不可见的问题:设置窗口会强制浮动在 TagLauncher 列表之上,确保用户能实时预览设置效果 ## [3.1.34] — 2026-05-10 - 优化 Container 模式标签 hover 交互:hover 标签后对应容器背景保持标签色填充,直到再次点击标签或点击容器空白处清除 ## [3.1.33] — 2026-05-10 - 修复点击 App 图标后应用列表仍置顶停留的问题:App 启动路径改为强制关闭并释放 overlay,确保焦点及时转移到被打开的应用 ## [3.1.32] — 2026-05-10 - 提升 overlay 到 CoreGraphics maximum window level,进一步避免被全屏应用窗口层遮挡 ## [3.1.31] — 2026-05-10 - 强化全屏 Space 唤出逻辑:每次显示 overlay 都重新创建绑定当前 Space 的 NSPanel,避免复用旧窗口导致全屏空间迁移失败 ## [3.1.30] — 2026-05-10 - 再次修复全屏 Space 唤出不可见问题:overlay 显示时移动到当前活跃 Space,并避免激活 App 导致窗口回到非全屏空间 ## [3.1.29] — 2026-05-10 - 继续修复全屏 Space 唤出不可见问题:overlay 改为非激活 NSPanel,并加入 stationary/transient 全屏辅助行为,确保在当前全屏 Space 前置显示 ## [3.1.28] — 2026-05-10 - 修复全屏 Space 下 Shift+Option+Space 唤出 TagLauncher 后 overlay 被全屏应用遮挡的问题:显示时刷新当前屏幕 frame,提升窗口层级并强制前置 ## [3.1.27] — 2026-05-07 - 彻底移除 SMAppService,改用 LaunchAgent(~/Library/LaunchAgents)控制登录启动,零权限 ## [3.1.26] — 2026-05-07 - 修复每次启动重复触发 App 管理权限弹窗:SMAppService.register() 只在首次调用 ## [3.1.25] — 2026-05-07 - 首次启动自动 seed 7 个默认标签(设计/编程/写作/游戏/娱乐/系统优化/办公),9 语言适配 ## [3.1.24] — 2026-05-07 - 关于页整体右移 100pt,视觉居中 ## [3.1.23] — 2026-05-07 - 关于页:图标放大一倍 (128×128),签名档精简为两行 ## [3.1.22] — 2026-05-07 - 关于页签新增签名档 ## [3.1.21] — 2026-05-06 - 大幅缩减包体:4.1MB → 900KB(二进制 strip + icon 压缩) ## [3.1.20] — 2026-05-06 - 修复设置页面切换 tab 时宽度跃变:固定宽度 660pt,高度可拖动调整 ## [3.1.19] — 2026-05-06 - 修复默认组名不随语言切换的问题:存储语言中立 key "Other",显示时翻译 - 移除 Sandbox entitlements(不再索要 App 管理权限) - 移除 Accessibility 热键降级方案,保持纯 Carbon hotkey + 菜单栏 fallback - 新增 App Store 提审资料文档 (AppStore_Submission.md) + 截图脚本 (screenshots.sh) - 新增 App Store 1024×1024 图标 (AppStore_1024.png) ## [3.1.16] — 2026-05-06 - 回滚所有快捷键设置功能(v3.1.13~v3.1.15),回到 v3.1.12 稳定状态 ## [3.1.15] — 2026-05-06 - 修复 HotkeyHelper 崩溃:kVK 常量非连续编号,改用字典查表替代 switch range ## [3.1.14] — 2026-05-06 - 快捷键设置独立为第 3 个页签(键盘图标),Data 恢复原样 ## [3.1.13] — 2026-05-06 - 新增全局快捷键设置(Data 页签):点击按钮后按下新快捷键即可更改,支持任意组合键 - 菜单栏「Show TagLauncher」右侧显示当前快捷键 - HotkeyHelper:Carbon keycode → 人类可读字符串(⇧⌥Space, ⌘A, F1 等) ## [3.1.12] — 2026-05-06 - General 标签页:放弃 Grid,回到逐行 HStack;4 个 Picker 统一 280pt 左对齐,描述文字左边缘与 Picker 严格对齐 - "其他" 默认组改名为 "未分类",9 语种全部翻译;启动时自动迁移旧 "Other" 值 ## [3.1.11] — 2026-05-06 - General 标签页:改用 Grid 布局替代固定 frame,标签列按内容宽度自动右对齐 - 点击 Dock 图标现在等同于菜单栏 "Show TagLauncher",直接全屏显示 APP 列表 ## [3.1.10] — 2026-05-06 - General 标签页:Toggle 行横向居中;标签-控件改为逐行 HStack(替代并行 VStack),消除垂直不对齐 - 修复设置页面行为:打开偏好设置时不再隐藏 overlay,Settings 窗口提升至 overlay 上方供实时预览 - Tags 标签页整体向右偏移 16px ## [3.1.9] — 2026-05-06 - Grid 布局替换独立 HStack:标签列 + 控件列严格对齐,16pt 间距 ## [3.1.8] — 2026-05-06 - 优化 General 标签页排版:标签文字右对齐、选项/说明左对齐、间距16pt ## [3.1.7] — 2026-05-06 - 彻底清除 Finder 标签残留:移除 `migrateFromFinderIfNeeded()`, `readFinderTags()`, `Store.migrated`, `removeTag()` - 移除 AppIcon.iconset 目录(build 已改用 icon-icns.icns) ## [3.1.6] — 2026-05-06 - 完整国际化:Settings 所有页面、编辑模式、标签编辑器全部使用 tr() 翻译 - 9 语种翻译补全(新增 settings.*, edit.*, tag.*, app.* 共 14 个 key) - 新增 key:settings.launchAtLogin, settings.showInDock, edit.tags, app.name, app.description, app.version, app.build ## [3.1.3] — 2026-05-06 - 清除 Re-index 功能:已脱离 Finder,每次 overlay 打开自动扫描新 app,无需手动触发 ## [3.1.2] — 2026-05-06 - 修复 Show in Dock 不生效:监听 UserDefaults 变化动态切换 activationPolicy - 新增 Launch at login(开机启动)开关,默认勾选,首次安装自动启用 ## [3.1.1] — 2026-05-06 - 修复语言菜单勾选与实际语言不一致(`L10n.currentCode` 替代 UserDefaults) - 修复 `setupMenuBar` 重复调用导致图标消失(先移除旧 statusItem) - Preferences → General 新增「Show in Dock」Toggle ## [3.1.0] — 2026-05-06 - 国际化:支持 9 种语言(英/简中/繁中/日/韩/俄/法/意/西) - 菜单栏新增 Language 子菜单切换语言 - 翻译文件独立存储在 `Apptag/Localization/*.json` - `L10n.swift` 管理器 + `tr()` 辅助函数 ## [3.0.11] — 2026-05-06 - 容器标题最小宽度优化:`.layoutPriority(1)` 让文字优先占空间,分隔线压缩,可显示约15字符 ## [3.0.10] — 2026-05-06 - 恢复 hover 左侧标签 → 右侧滚动(之前误移除) - flatGrid + containerGrid `.id(displayMode)` 修复模式切换后功能失效 ## [3.0.9] — 2026-05-06 - 容器模式:hover 左侧标签 → 右侧自动滚动到对应容器 - 容器模式:点击左侧标签 → 对应容器加粗彩色边框(再点取消),边框颜色与标签颜色一致 ## [3.0.8] — 2026-05-06 - 修复 hover 显示名称时容器抖动:文本始终渲染,opacity 控制显隐(空间预占位) ## [3.0.7] — 2026-05-06 - 隐藏 APP 名称时,鼠标 hover 自动显示名称(`.opacity` 0.85) ## [3.0.6] — 2026-05-06 - 新增标签输入行显示在标签列表最上面第一行 - Settings Tags 标签页排序改用 tagOrder(新建标签确认后留在顶部) ## [3.0.5] — 2026-05-06 - `createTag` 和 `assignTag` 中 `tagOrder.append` → `tagOrder.insert(at: 0)`,新建标签始终在列表最上面 ## [3.0.4] — 2026-05-06 - 新增 **Hide app names** Toggle(Preferences → General → 最后一行),Flat/Container 双模式均支持隐藏 APP 名称 - 去掉 General 标签页中 "Appearance"、"Layout" 两个 section header - 修复新建 tag 消失的 bug:`addNewTag` 调用 `TagEditor.createTag` 持久化到数据库 - 每次进入编辑模式强制从数据库刷新 tagColors 和 draggedTagNames - 编辑模式标签名强制单行 + 中间截断(`.truncationMode(.middle)`) ## [3.0.3] — (已回滚) - 尝试等行高 LazyVGrid 布局 → 用户不满意,回滚至 3.0.2 ## [3.0.2] — 2026-05-06 - 容器样式改为瀑布流布局(Pinterest-style):GeometryReader + HStack + LazyVStack,按最短列分配,16pt 等距间隙 - 容器名强制单行 `.lineLimit(1)` + `.truncationMode(.middle)` - 标签拖拽排序最终方案:`onDrag`/`onDrop`(放弃 List+.onMove,因 macOS 不原生支持且导致无法退出编辑) ## [3.0.1] — 2026-05-06 - 新增容器显示样式:Preferences → General → "App list style" → Flat / Container - Container 模式:每个 tag group 包在圆角矩形框内,`ultraThinMaterial` 背景,app 图标网格自动适配 ## [2.0.2] — 2026-05-06 - 标签拖拽排序:编辑模式左侧标签列表支持 `onDrag`/`onDrop` 拖拽重排 - 新增 `tagOrder` 字段持久化到数据库,`AppIndexer.group()` 按自定义顺序排列分组 ## [2.0.1] — 2026-05-06 - 确认导出已包含完整 app-tag 映射信息(`tags` + `appTags`) ## [2.0] — 2026-05-06 - **架构级变更**:标签完全脱离 Finder,独立存储在本地 JSON 数据库 `~/Library/Application Support/TagLauncher/tags.json` - 首次启动一次性导入 Finder 存量标签(含"Mac自带"),之后不再触碰 Finder xattr - 所有 CRUD(assign/rename/delete/setColor)写入本地 DB - Preferences → Data 标签页:Export / Import JSON 备份恢复 - `DismissibleHostingView.mouseDown` 递归搜索 `TextFieldContainer`/`NSTextField` - 编辑模式直接进入 Edit App Categories(去掉 tag 编辑选择页) ## [1.1.6] — 2026-05-06 - xattr 写入失败时通过 `osascript` + `administrator privileges` 弹出系统认证窗口重试 - SIP 保护路径检测并提示 ## [1.1.5] — 2026-05-06 - 去除编辑模式中 tag 编辑选择页,直接进 Edit App Categories - 修复 Settings 中 tag 重命名产生重复标签的 bug ## [1.1.4] — 2026-05-05 - `TagEditorView` 可复用 tag CRUD 组件 - `TextFieldContainer` 模式解决 NSTextField 焦点问题 - `DismissibleHostingView` 点击转发优化 - 编辑模式 Ctrl+E、标签位置 left/right/top ## [1.1.3] — 初始 - macOS menubar 应用,SwiftUI+AppKit,swiftc 编译 - Carbon 全局热键 Shift+Option+Space - Finder 标签读取、分组显示、全屏 overlay - 标签编辑(与 Finder xattr 同步)