用户提供 /Users/ar/Desktop/奇怪的抖动问题.mp4,要求先判断奇怪交互抖动的成因,并评估修复风险。
~/.codex/rules/qa-workflow.md 与 ~/.codex/rules/delivery-gate.md。ffprobe 检查视频:8.88 秒,1920x1080,约 19.49 fps。ffmpeg 抽取 contact sheet:/private/tmp/taglauncher-jitter-frames/contact.jpg/private/tmp/taglauncher-jitter-frames/contact-4fps.jpg/Users/ar/Projects/Taglauncher/src/Apptag/ContentView.swift/Users/ar/Projects/Taglauncher/src/Apptag/AppGridCollectionView.swift/Users/ar/Projects/Taglauncher/src/Apptag/TagNavigationView.swift/Users/ar/Projects/Taglauncher/src/Apptag/AppGridSupport.swiftContentView.handleTagNavigationHover():tagNavigationHoveredGroupName;fillColorlessContainer(id);scrollToTagFromHover(id),进而 scrollTo(id),让 AppGrid 自动滚到对应分组。AppGridContainerCollectionLayout.shouldInvalidateLayout(forBoundsChange:) 返回 false,如果 collection view 实际宽度在窗口/clip view 过渡中变化,可能出现旧宽度/新宽度两次排版。但从视频现象看,主要不是宽度抖动,而是 hover 自动滚动。ContentView.swift 的 hover 处理和 scrollToTagFromHover()。