v3.4.6
What's New
Performance optimizations targeting notch card animation jank
during heavy tool use. Instruments-traced and verified across
multiple recordings.
- Move Ghostty plugin's
osascriptwindow/tab enrichment off
the main thread. This was blocking up to 2.87 s during
tool-heavy event bursts and is the single biggest fix. - Cache
ActiveSession.triptychContentso each idle-peek row's
body redraws in O(1) instead of re-running the formatter's
candidate chain on every refresh. - Move hook event preprocessing (ISO timestamp parsing, shell
command tokenization, text normalization, tool activity
formatting) off the main queue. - Move TodoWrite transcript JSONL scan off the main thread with
per-session debounce. - Coalesce card intrinsic-height
PreferenceKeyupdates to one
per display frame. - Pause the 30 Hz running-session pulse animation while the
notch shell is collapsed or closing. - Smaller: 16 ms resize coalesce, cleanup.
中文
针对工具频繁调用时 notch 卡片关闭动画卡顿的性能优化。所有改动经
Instruments 多次实测验证。
- Ghostty 插件的
osascript窗口/标签页查询移出主线程。这是单一
收益最大的修复——之前工具密集触发时最长阻塞主线程 2.87 秒。 - 缓存
ActiveSession.triptychContent,idle peek 行的 body 重绘
从"每次重跑 formatter 候选链"变成 O(1)。 - Hook 事件预处理(ISO 时间戳解析、shell 命令分词、文本归一化、
工具行为格式化)全部移到后台队列。 - TodoWrite transcript JSONL 扫描移到后台并按 session 节流。
- 卡片 intrinsic-height
PreferenceKey上抛合并到每帧 1 次。 - notch 收起或关闭动画期间暂停活跃会话行的 30Hz 脉冲动画。
- 其他小优化:16ms resize 合并、清理调试探针。