Skip to content

v2.5.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 15:49
· 21 commits to main since this release

Grow 2.5.0 — 2026-10-22

重组会话历史存储与恢复链路,减少长会话恢复时的重复读取、解析和 TUI 扫描,并补齐恢复、持久化和展示回归。

升级注意: 本版使用新的会话账本格式(Timeline schema v27),不自动迁移旧会话。旧会话请继续使用原版本读取,升级前请备份 GROW_HOME。

会话历史与恢复

  • 以单一 Timeline 账本保存领域事实、必要展示事实和顺序锚点,删除独立 updates 持久化与跨文件对账;已接纳响应正文只保存一份。
  • 在同一恢复边界内复用已校验的根和子会话结果,减少重复读取、身份索引重建及投影构造。
  • 保留完整历史校验、原顺序、持久 ACK、子会话归属和恢复后的继续输入;恢复期间普通输入保持关闭,Ctrl+D 可以退出。

Resume 性能实测

直接对比 2.4.3 与 2.5.0 官方 release 发行包,在同一台机器恢复相同逻辑的长文本会话。6144轮会话从启动恢复到可输入,由约 16.39秒降至1.37秒,耗时减少约 92%(约12倍加速)。

会话规模 首条历史可见:2.4.3 → 2.5.0 末屏可见:2.4.3 → 2.5.0 可输入:2.4.3 → 2.5.0
512轮(约16 MiB回复正文) 0.31 → 0.18秒 0.55 → 0.18秒 0.67 → 0.21秒
2048轮(约64 MiB回复正文) 0.81 → 0.47秒 2.06 → 0.58秒 3.25 → 0.59秒
4096轮(约128 MiB回复正文) 1.76 → 0.68秒 4.07 → 0.96秒 8.37 → 0.99秒
6144轮(约192 MiB回复正文) 2.98 → 0.87秒 6.59 → 1.30秒 16.39 → 1.37秒

均从启动 grow --continue 起算。首条历史指首个含历史正文的完整PTY帧,末屏指最后一轮历史可见;可输入通过全历史恢复、Loading消失后的草稿探针回显验证,不以末屏代替就绪。6144轮首历史和末屏耗时分别减少约71%和80%;4096轮可输入耗时减少约88%。

环境为 Apple M4 Pro / 24 GiB / macOS 27.0.1、50×120 PTY,两版均为官方 macOS ARM64 release-dist 包,默认关闭诊断。每组五对AB/BA交替取中位数,排除预热;新进程、独立 HOME/GROW_HOME、温热文件缓存,仅纳入无编译干扰的正式窗口,受干扰样本整组或整对排除。样本是纯文本根会话,不保证其他硬件、冷盘、图片或子会话负载获得相同收益;未做就绪与历史分页分离。512~4096轮数据与方法、6144轮独立补测与范围。

TUI 与图片

  • 按可见需要延后历史 Markdown 展示计算,减少布局重复维护、无效图片扫描和临时正文复制。
  • 保留图片、Mermaid、raw/pretty 复制、历史选择与终端缩放后的布局和来源关系;快速恢复仍按实际吞吐向前滚动。
  • 图片可在无文字草稿时提交,/btw 复用主会话已持久确认的图片描述,并保留失败后输入恢复。

周边修正与验证

  • 整理内部消息布局、锁作用域和跨平台路径规范化,完成固定 Rust 1.93.1 下的 fmt、Clippy 严格检查与 release 编译验证。

  • 修正技能、Runtime 收件消息和 thinking 历史的模型协议投影,保留原始工具结果和来源。

  • 修正 MCP 工具目录分页与当前 Agent bridge 的目录同步;补齐 Settings 交互和偏好失败回滚测试。

  • 增加现代长会话 release 基准及首历史发送、消费、绘制与 writer ACK 归因。收益依赖历史类型、帧节奏和输出速度,不承诺所有会话的首屏均加速。

完整变更