聊天聊久了,重新打开还能一样快吗?
一段对话积累得越久,消息和活动记录就越多,但重新打开它不该因此越来越慢。0.1.163 把真实长对话的可交互等待从约 8.19 秒降到了约 280–286 ms。
简单来说
长对话重新打开时的等待大幅缩短:真实长会话从约 8.19 秒才能交互,降到约 280–286 ms,同时历史内容保持完全一致。
当一个 Conversation 积累了大量消息、活动记录和 reasoning,之前重新打开时可能会出现明显卡顿:首屏需要等待,真正恢复交互还要更久。
不删历史,而是减少打开历史时的重复工作
Known-secret 集合现在每次顶层脱敏只计算一次,避免在同一条处理路径里重复构建。
活跃 Turn 的历史事件重放改成按动画帧批量提交 DOM,不再把大量 DOM 更新一次性压到主线程。收起状态的 activity / reasoning 也改成只有展开时才创建详情 DOM,重新收起后会释放。
同时删除了会话切换时的一次重复 activity render。
在真实长 Conversation 上,变化从秒变成了毫秒
- 93–114 ms:首次可见,原约 1,632 ms
- 280–286 ms:可交互,原约 8,190 ms
- 0:最长主线程任务,原约 5,209 ms
也就是说,历史仍然完整保留,但重新打开 Conversation 时,不需要先让界面一次性把所有历史细节都构建完,才能恢复使用。
性能优化没有改变会话内容
重启前后的 Session、Project History、Events、Transcript 哈希完全一致。Pi + ChatGPT、Codex、DeepSeek 的重启前后 smoke 也全部通过。
长 Conversation 可以继续长,但历史本身不应该成为重新进入它的惩罚。
本版本全量测试:384/384。
本次更新
Known-secret 集合改为每次顶层脱敏只计算一次。
活跃 Turn 历史事件重放改为按动画帧批量提交 DOM。
收起的 activity/reasoning 只在展开时构建详情 DOM,收起后释放。
删除会话切换时的重复 activity render。
首次可见约 1,632 ms → 93–114 ms。
可交互约 8,190 ms → 280–286 ms。
最长主线程任务 5,209 ms → 0。
重启前后 Session、Project History、Events、Transcript 哈希完全一致。
Pi + ChatGPT、Codex、DeepSeek 重启前后 smoke 全部通过。
全量测试:384/384。
FinchStory 0.1.163 · 2026 年 9 月 6 日