From 9d87dbed3f81d07a81b1484a1317d7f7c0258610 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Thu, 28 May 2026 19:58:24 +0800
Subject: [PATCH] Stabilize tag navigation hover highlighting

---
 TODO.md |   22 ++++++++++------------
 1 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/TODO.md b/TODO.md
index d940cd0..6d5eebd 100644
--- a/TODO.md
+++ b/TODO.md
@@ -11,21 +11,14 @@
 
 ## In Progress
 
-- [2026-05-28] 第二批 AppKit 化第 2 项:标签栏 AppKit 化第一阶段,只读导航。
-  - 分支: `codex/post-freeze-new-requirement`
-  - 目标: 抽 `TagNavItem` / callbacks 边界,新增可回滚的 AppKit 标签栏。
-  - 范围: 顶部、左侧、右侧标签栏显示;点击标签滚动到对应分组。
-  - 暂不做: 标签拖拽排序。
-  - 回滚: 保留旧 SwiftUI 标签栏作为开关。
-  - 验收: 三种标签位置、点击滚动、长标签、多语言、全屏和 Split View。
-  - QA: 构建、签名、本地化 JSON、三种位置屏幕点击复核、SwiftUI 回滚开关、窗口 8 逻辑 QA 已通过;待用户最终体验验收后移动到 `Done`。
-  - 结果: 默认启用 AppKit 标签导航,`useAppKitTagNavigation=false` 可回滚到旧 SwiftUI 标签栏。
-
-## Todo
-
 - [2026-05-28] 第二批 AppKit 化第 3 项:标签栏 AppKit 化第二阶段,hover 与容器高亮。
+  - 分支: `codex/post-freeze-new-requirement`
   - 目标: hover 标签时高亮对应容器,保留 colorless container 的填充/取消逻辑。
   - 验收: hover 触发频率、滚动不过度、视觉不闪烁、全屏/Split View 不跳 Space。
+  - QA: 构建、签名、本地化 JSON、hover 静态 QA、colorless grid 屏幕 hover/点击复核、窗口 8 逻辑 QA 已通过;待用户最终体验验收后移动到 `Done`。
+  - 结果: 标签 hover 进入/离开已接入 AppKit;hover 高亮只刷新可见运行态,不触发 App Grid reload;重复 hover 滚动已去抖。
+
+## Todo
 
 - [2026-05-28] 第二批 AppKit 化第 4 项:标签栏 AppKit 化第三阶段,拖拽排序。
   - 目标: 用 AppKit hit-testing 替换 SwiftUI `GeometryReader + preference` 的标签排序命中逻辑。
@@ -61,6 +54,11 @@
 
 ## Done
 
+- [2026-05-28] 第二批 AppKit 化第 2 项:标签栏 AppKit 化第一阶段,只读导航。
+  - 提交: `b4a1ba5`
+  - 结果: 默认启用 AppKit 标签导航,顶部/左侧/右侧标签栏显示和点击滚动接入完成;`useAppKitTagNavigation=false` 可回滚到旧 SwiftUI 标签栏。
+  - 验证: 构建、签名、本地化 JSON、三种位置屏幕点击复核、SwiftUI 回滚开关、窗口 8 逻辑 QA 全部通过;用户已确认第 2 项 OK。
+
 - [2026-05-28] 第二批 AppKit 化第 1 项:清理 `ContentView` 的 App Grid 交互职责。
   - 提交: `561541e`
   - 结果: `ContentView` 中 App Grid 的 bubble、drag、drop、refresh toast 临时状态已收口到 `AppGridInteractionState`。

--
Gitblit v1.9.3