Skip to content

v3.4.6

Choose a tag to compare

@sj719045032 sj719045032 released this 20 May 02:34

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 osascript window/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.triptychContent so 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 PreferenceKey updates 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 合并、清理调试探针。