Skip to content

v3.3.0

Choose a tag to compare

@sj719045032 sj719045032 released this 05 May 08:15

What's New

  • Snappier menu bar and popover. Aggregation work moved off the
    main thread — Stats / All Time / Usage tabs no longer hitch on
    first open.
  • Faster startup. Only the selected provider (plus Codex when
    notch is enabled) does the full session scan at boot. Other
    providers stay cold until you open their tab.
  • Smoother search. Session list FTS search runs in the
    background with stale-result discarding; transcript search reads
    precomputed indexes instead of rebuilding the matched fields per
    keystroke.
  • Lower memory peak for large transcripts. Parsers iterate file
    bytes directly; the whole-file String allocation is gone.
  • Faster cache rebuild. Per-batch SQLite transactions with
    reused prepared statements replace the per-session BEGIN/COMMIT
    cycle.

Under the Hood

  • Seven-PR performance pass with OSSignposter instrumentation
    throughout; baseline measurement scripts at scripts/perf-*.
  • Combined Claude parse + FTS extract path saves one file IO per
    dirty session.
  • Status bar and notch behavior unchanged — every PR enforced this
    as a hard constraint.

中文

更新内容

  • 菜单栏和 popover 更跟手。 聚合计算移到后台线程,
    Stats / All Time / Usage 标签首次打开不再卡顿。
  • 启动更快。 只有当前选中的 provider(以及灵动岛启用时的
    Codex)会在启动时做完整扫描; 其他 provider 保持冷启动,
    切过去时再加载。
  • 搜索更顺滑。 会话列表的 FTS 搜索改异步并丢弃过期结果;
    转录页内搜索改读预计算索引, 不再每次按键重建字符串。
  • 大转录峰值内存降低。 parser 直接按字节遍历文件,
    整文件 String 分配被消除。
  • 缓存重建更快。 批量 SQLite 事务 + 复用 prepared statement
    替代每会话一个 BEGIN/COMMIT。

内部细节

  • 7 个 PR 的性能优化, 全程 OSSignposter 埋点;
    scripts/perf-* 提供 baseline 测量脚本。
  • 合并 Claude parse + FTS 提取路径, 每个脏会话省一次文件 IO。
  • 状态栏 / 灵动岛行为完全不变 —— 每个 PR 都把这点作为硬约束验证。