Repository navigation
Releases: LordCasser/grow
Release list
v2.5.5
Grow 2.5.5
2026-10-31
本版本修复 Plan 修订与确认、子 Agent 委派授权,以及压缩和挂起的交接问题。
Plan 与任务
- 要求修改计划后,模型上下文保留本次完整反馈;已接纳决定通过精确回执自动关闭确认界面,迟到回执不会关闭新的审批。
- 窄屏操作栏按宽度换行,Minimal 的预览、行内批注、修订输入与提示保持一致;补充连续两轮修订、批准至完成的真实终端回归。
- 子任务启动前失败后,父 TODO 的后续修改不再等待无法运行的 child;恢复闭合遗留重规划。相同完成阻塞重复出现时停止本轮自动采样,保留具体原因供后续处理。
子 Agent 授权
- 委派以解析后的正式 ID 核对权限,区分未知类型、全局禁用和父 Agent 限制;插件别名遵守相同授权。
- 全局 toggle 热更新同步到已有普通主/子会话的派发与工具目录,CLI 定义在目录及重建时保留。
- 挂起恢复沿用 child 出生时的有效 RWX,再受当前父权限上限约束;缺失或损坏的出生事实阻止恢复。
压缩、挂起与更新
- 压缩完成后的存储准入失败保留具体错误,不再折叠为取消;已提交摘要继续保留。
- 挂起等待压缩持久化与结算排空后收回前台,避免等待已停驻的前台导致超时。
- 修复原生向量转换在分配失败时未初始化错误指针的问题,补充失败路径回归并消除对应 C 编译 warning。
- 取消标记统一为
Turn cancelled,不根据缺少来源的终态推断操作者。 - 未配置自动更新时默认开启,显式关闭继续生效;完整 TUI 在会话中显示版本和重启提示,Minimal 保留原有 notice。
- 改进模型路由切换后的上下文交接与 reasoning 兼容,并引导代理等待现有子任务。
存储边界
延续现有 Timeline 格式。升级说明见 2.5.0 说明。
v2.5.4
Grow 2.5.4
2026-10-29
本版本修复上下文压缩、模型切换与恢复的状态衔接,并统一工具和 Thought 活动展示。
上下文与恢复
- rewind、模型路由替换后按当前实际回放重建上下文压力;完整 provider 回执即使低于本地估值也参与校准,连续压缩与再增长不会丢失保留内容的计数。
- 显式输出预留导致总窗口超限时先走有界预压缩;prune、图片重投影、后台提升和最终请求准入采用同一预算。压缩后仍放不下会结束本轮,保留已提交摘要及完成状态。
- 修复压缩取消、重复提升、持久化 ACK 丢失后恢复和异步通知的衔接,避免假零计数、重复提交及残留压缩提示。
- 冷恢复和 Goal 生命周期控制提交后立即同步请求作用域;Plan handoff 已由当前 Turn 消费时可幂等核对,其他 Turn 与已撤销 receipt 仍被拒绝。
- 不可验证的子会话完成观察不能再生成成功结果;后代展示恢复校验真实父子关系,并避免无事件 ID 的历史任务行重复出现。
终端与运行时
- 连续工具调用、子任务与交错 Thought 统一成可折叠活动,保持真实时序、失败信息和手动展开;live 与 replay 沿用相同语义。
- 关闭 sticky prompt 或使用 compact prompt 时,精确导航和居中不再保留多余 header 行。
- 配置与技能 watcher 的系统注册移到阻塞运行时,ACP 初始化可在注册等待期间继续;操作系统注册本身仍不能取消。
/btw接收端关闭后结束对应侧问;本地 OCR 与 PTY 测试 daemon 补齐进程树所有权和退出清理。- 修复 Git/worktree 构建身份监听、Chrome duration 记录及若干测试的协议同步和构建模式边界。
存储边界
延续 Timeline v27,不改历史会话格式。升级说明与原存储边界见 2.5.0 说明。
v2.5.1
Grow 2.5.1
2026-10-25
本版本保存 Goal 的完整完成报告,修正上下文计数和 effort 同步,并改善全屏侧问结果的查看体验。
Goal 完成报告
Goal 完成时必须提交非空 completion_report,记录结果、完成证据、验证和剩余限制。报告与完成状态一起确认持久化;写入失败不会发布成功状态。点击 Goal: Done 可查看 Markdown 报告并滚动长内容,恢复和回放后仍可查看。历史 Goal 没有报告时会明确提示未归档。
工具调用方需要调整:update_goal(status="complete") 现在必须同时提供 completion_report;blocked 不接受该字段。原有完成审查和必需交付门槛仍然适用。
上下文计数与技能加载
- 冷恢复时按实际 portable replay 消息估算上下文压力,避免将保存在原始历史中、但不再发送的 reasoning 算入。原始历史保留,真实超出窗口的请求仍会被识别。
- 用户和模型加载技能时,统一使用与请求投影、状态栏一致的上下文计数检查剩余空间,再计入完整新增内容,减少错误拒绝。内容发布、取消和持久化确认继续遵循原有边界。
冷恢复计数仍是请求前估算;工具、schema 等请求开销和 provider 实测用量会通过现有路径补入与校准。
终端交互
- 全屏
/btw回答使用更大的覆盖式弹窗;Esc 收起后,双击历史行可在同尺寸查看已保存答案。支持滚动、Markdown、链接和文本选择,输入框保持可用。Minimal 模式沿用原生终端面板。 - 忙碌期间修改 effort,在收到匹配的控制终态回执后立即应用暂存的模型和推理强度状态,避免界面继续显示旧值。
升级说明
延续 2.5.0 的 Timeline v27 存储边界,不自动迁移旧格式会话;从更早版本升级前请备份 GROW_HOME,并阅读 2.5.0 升级说明。
v2.5.0
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 归因。收益依赖历史类型、帧节奏和输出速度,不承诺所有会话的首屏均加速。
v2.4.3
Grow 2.4.3 — 2026-10-20
补齐子 Agent 权限模式的设置入口,修正 Settings 回归覆盖,并将完整菜单集成测试纳入发布门禁。
设置
- Settings → Agent 新增独立的 Subagent permission mode,支持 Ask、Auto 和 Always approve,默认 Auto;保存后重启生效。
- 子 Agent 权限沿现有独立授权策略运行;设置保存使用原有顺序写入和失败回滚,只修改
[subagents].permission_mode,保留其他配置及环境引用。
回归与发布
- 补齐 Show model provider 的覆盖清单、Bool 类型、默认值及 typed setter 检查,并增加键盘和鼠标交互测试。
- 完整 Settings integration 测试纳入既有 Core 回归和正式发布的同提交门禁。
- 协调失败路径测试使用本地受控拒绝,移除对未监听 localhost 及时失败的依赖,保留原有期限和业务断言。
v2.4.2
Grow 2.4.2 — 2026-10-20
本版本修复会话挂起与恢复的身份和等待保留问题,收敛 Goal/Plan 状态,并修正构建诊断、资源释放和回归测试运行器边界。
会话挂起与恢复
- 挂起结算复用同一任务与序号下已接纳的完成通知,包括已消费的回执;只有没有既有回执时才写入结算结果,避免同一终态身份出现不同正文。
- 树冻结前持久化根节点挂起意图,重试沿用原 operation 身份;初始化超时或冻结确认丢失后可以继续原次挂起。
- Permission、Question 和 PlanApproval 等人工等待在超时重试、冷恢复及恢复后再次挂起时保留原调用与依赖。已回答等待及真实工具结果不会被旧 checkpoint 复活或覆盖。
Goal 与 Plan
- 自动激活 Goal 或重新激活 Goal 定义时,保留 BehaviorCoordinator 中的 Plan 候选和单调提交计数;冷恢复后的下一次提交继续使用新身份。
- 切换工作范围时复用 LocalPlan 的旧范围处置规则:明确未派发的可选交付可切换,必需交付需 Released;活动或结果未知的执行、等待和未处理重规划仍会阻止切换。
构建、资源与回归运行
- 修复 sqlite-vec 缺失元数据项及不支持的向量/距离分派路径,补齐相关初始化与边界处理;修正 nix 时间值的可移植性诊断,并固定使用官方 cross 发行包。
- 官方构建将已验证的完整 RELEASE_COMMIT 传入构建环境,并在 smoke 检查中核对版本和源码身份。
- 释放会话结束后不再需要的配置监听器及 sqlite-vec 元数据名称;修复 Bash 快照捕获与用户同名导出变量冲突。
- 精确 Cargo 测试运行器分阶段报告编译、枚举和执行,后两阶段直接使用单次编译产物,避免枚举重复编译;保留独立期限、流式输出及有界进程树清理;无法确认清理时明确报告不确定状态。
v2.4.1
Grow 2.4.1 — 2026-10-19
本版本修复会话退出与恢复、Windows 导出和技能加载,改善视觉辅助、Agent 通信与 Plan 的使用体验,并补强发布回归门禁。
会话退出与恢复
- 修复 Ctrl+D 退出请求未确认后无法再次重试、提示在部分页面或窄窗口不可见的问题。默认仍使用一秒内连续两次 Ctrl+D 确认退出;Ctrl+C 保持输入清理与取消当前回合的行为。
- 修复挂起期间辅助命令继续进入导致会话线程崩溃的问题。退出按同一操作身份等待结果,不把超时当作成功,也不强行丢弃仍在结算的工作。
- 减少树挂起、状态观察和父子交接中的重复历史复制与验证,并补充阶段耗时记录,改善长会话退出时的响应。
- provider 返回错误或无法解析的内容、自动恢复耗尽后,同一会话可以通过新的用户输入继续工作。子 Agent 按真实已结算用量保留剩余额度,不把一次失败直接当作预算耗尽。
- Goal 失败暂停后,普通“继续”可发起独立用户回合,但不会自动重启 Goal 或重置预算;恢复 Goal 仍使用显式 restart 并通过原有预算检查。
Skill 按名称与渐进加载
- 技能目录复用启动扫描和刷新结果,只向模型提供名称与必要元数据;加载正文统一使用
load_skill,无需猜测文件安装路径。 - 支持按技能名称读取一个包内资源,按需逐步加载,不递归展开全部引用或执行脚本。
- 禁用、不可用或被拒绝的技能明确返回无法加载,不指导通过 Read、Shell、同名副本绕过。初始化声明的技能无法加载时明确报错。
- 保留用户选择与模型调用的统一授权、原子发布和恢复边界;不把普通文件阅读误标为技能加载成功。
视觉辅助与 Agent 通信
- 辅助识图请求只发送图片和固定英文提示词,不携带当前任务、Skill 或会话历史。图片描述保留原语言,TUI 固定操作文案使用英语。
- 识图、OCR 和转换结果在同一条普通操作行更新;修复重连后操作行重复、子 Agent 缺少图片恢复进度的问题。
- 内部图片投影占位句不再作为对话正文显示,也不再反复进入主模型与子 Agent 的派生历史。正常说明文字和
Converted 1 image操作行保留。 - 会话内与跨会话 Agent 消息使用带身份的通信操作行,减少重复展示;“收到”只表示接收,不暗示对方已经执行。
- 重选当前 Agent、provider/model 和相同采样设置时,不再出现虚假的切换提示;真正变更仍显示控制结果。
Plan、TODO 与失败处理
- 切换 Agent 时保留 TODO owner 与运行状态;切换 Behavior 时保留可恢复的 Plan 候选及提交计数。
- Plan 完成后保留只读 Plan / Result report 双 Tab,主视图显示简短总结。入口保留至下一次成功的手动 Behavior 选择,避免最终报告变成不可用的 artifact 占位。
- 压缩后重新发布持久规划状态,避免 TODO 在界面丢失。
- 工具执行链路失败会结束当前步骤并保留原错误,避免后续步骤继续运行或覆盖真正的失败原因。
- 修复 Bash 开启
set -a后,大函数快照因临时变量自动导出而导致命令失败的问题;用户导出变量、函数和原选项继续跨命令保留。 - 修复持久 Shell 快照结束标记分块时的提前读取结束,并减少大快照标记检测的重复扫描。
- 系统指引默认优先将文件写入项目工作区及系统临时目录;项目外写入需要用户目标或任务必要性。这是行为指引,不是新增的文件系统沙箱。
Windows 导出与发布验证
- 修复 Windows 上会话树 transcript / trajectory 导出的目录同步兼容问题,并补齐真实 HTTP 下载、父子会话归档和取消清理的回归。
- 发布门禁覆盖核心行为、真实进程恢复、三平台协调与导出、Windows 存储及 OpenSpec,均绑定最终发布提交;失败、跳过或取消会阻止发布。
- 精确测试选择会确认用例存在并确实执行,默认 CLI 构建独立于库测试检查,避免零测试通过或测试依赖掩盖生产编译错误。
- 清理 Windows 条件编译告警,正式 Windows 产物构建将 Rust 告警作为错误处理。
- 修正配置监听 API 的注销边界,过滤失去项目所有者的迟到事件,同时保留共享祖先、全局及显式配置源的监听。
本版不包含独立 MCP 分支的 SDK / 策略身份改动,MCP 多轮交互继续暂缓。
v2.4.0
Grow 2.4.0 — 2026-10-19
本版本升级会话挂起、任务规划、计划审阅和技能加载。
会话挂起与恢复
- 正常退出和更新重启会先挂起所有受管会话及子 Agent 树。默认使用 Ctrl+D 在一秒内连续按两次确认退出;首次按键不改变草稿、队列、当前回合或 Goal,第二次才请求挂起。挂起后重复退出键合并到同一操作,不会强退。
- Ctrl+C 仅保留 composer 清理、局部控件操作和当前回合取消;取消等待期间重复按键只重试取消,不触发退出或挂起。
- resume 重建原会话、任务和等待关系,沿用原 Turn、采样额度和已接纳结果。中断命令保留输出与状态,未知副作用需要核对,不自动重放。
- Goal 和 Workflow 保留业务状态与预算;恢复前统一核对原工作区、模型路由、Agent 来源和写入所有权。
- 恢复等待中的子 Agent 结果时同时消费原完成回执,迟到的同源通知不会重复启动模型 Turn。
任务规划
- TODO 由会话持久保存,Task 可选关联一个直接父步骤。父项发生非完成的有效修改时,关联子 Agent 收到变更并自行重规划。
- 支持真实依赖的结构化等待、必需交付验收和带来源的局部摘要。等待不靠模型轮询;完成复核同时用于普通回答、结构化输出和 Goal。
计划与技能
- Plan 可以延期审阅,并通过原候选、版本和决定身份恢复;收起页面不等于放弃,查看不产生批准。
- Plan 决定写入尚未确认时,状态查询返回“未确认”。导入会拒绝仍可审阅或待执行的来源审批关系;目标会话须新提交并重新审批,已闭合历史仍可导入。
- Plan 预览和行评论绑定原会话及提交身份;版本变化时旧评论保留为未发送草稿,不自动套用到新计划。
- 用户选择与模型调用共用
load_skill。用户原文和整组技能原子发布,首次接纳响应前保护正文;失败或未知提交不会留下半组指令。 - 没有有效挂起 checkpoint 的异常重启会撤下原执行未消费的技能正文;有效挂起继续保留原上下文。
稳定性修复
- 普通 MCP 工具遇到传输丢失或超时只返回结果未知,不自动重发;后续明确调用可以重新连接。服务名统一用于合并与运行时身份,同一客户端列表的重名输入会被拒绝。
- MCP 禁用工具与 timeout/meta 策略可以随可信配置刷新;已接纳调用保持原 deadline,子 Agent 保持继承能力边界。
- 修复 Plan 访谈部分回答的自由文本丢失、旧 Workflow clear 覆盖新状态、未知 turn 结束原因误标成功,以及搜索缓存自愈对其他 root 的干扰。
- 询问启动按来源与询问 ID 持久接纳,相同重试不重复生成启动审计或提示;启动期间的并发查询不再将活跃询问误判为来源重启,接纳期间仍可取消。模型
ask_session的空白询问 ID 按未提供处理并生成新 ID;非空值和外部协议入口继续严格校验。 - 后台压缩取消保留原 worker,并在挂起或退出前完成用量结算,避免 Goal 关闭与 worker 退役互相等待。
- 旧父子会话链只有在全部成员过期、结果交付闭合且无活动 writer 时才联合回收;中途退出后继续同一回收决定,单独删除会拒绝拆散结果链。
- 人工问询、权限请求和 Plan 审批记录不含正文的等待边界,Replay 单独处理已确认的挂起离线时间。离线读取按精确身份与摘要检查用户显示内容、turn 终态和已登记的 Workflow/控制投影缺口。
- 修复 headless 不重放历史时冷恢复事件序号不足的问题;普通历史和 rewind 隐藏行已占用的事件 ID 均不会被复用。
采样修复
- 识别含图片请求中的中文 text-only 能力拒绝,沿用已有图片描述恢复。
- 图片能力拒绝按实际 model、backend、endpoint/query 路由记录;同一路由的不同别名共享状态,路由变化后独立判断,辅助视觉请求避免递归调用已拒绝图片的运行时。
- 冷恢复复用同一有效图片来源的已完成中性描述,即使辅助配置已关闭或其他输入推进了修订;继续核对来源、prompt、完成证据和当前投影身份,拒绝未来修订。
- 图片恢复随所属回合取消而停止;取消不会继续触发 OCR、后续图片组或主请求。补齐 OCR、持久化确认和图片恢复生命周期回归。
- 接受 Chat usage 中缺失或为 null 的可选 token 明细,保留可信总量。
MCP 多轮交互暂缓,现有能力门禁保持关闭。
本版更新会话、Control 和 Workflow 存储格式,不提供旧格式迁移。
v2.3.1
Grow 2.3.1 — 2026-10-03
本版本改进只读回放界面,并修复恢复会话时历史通信记录的位置。
只读回放
- 回放页面沿用普通会话的状态栏、任务列表、子 Agent 导航和快捷键布局,同时保留只读边界。
- 播放控制随终端尺寸收敛显示,历史任务状态按播放位置更新。
会话恢复
- Timeline 中存在、展示缓存中缺失的通信记录会按可验证的对话锚点恢复到原有位置,不再集中追加到最新输入之后。
- 根会话、延迟加载的子会话和离线 transcript 使用一致的有序恢复与去重规则,保留原始身份和来源时间。
v2.3.0
2.3.0 — 2026-09-30
Warning
grow export 的命令行输出方式已改变:现在将会话树写入目录,不再向标准输出写入 Markdown,也不再支持 --clipboard / -c。已有的目标目录会被拒绝,避免覆盖先前导出。
会话记录
grow export <session-id> [output-dir]导出根会话及子 Agent 的独立记录,包含思考、工具调用、状态和中断边界;导出时固定只读快照,避免把仍在写入的记录误当作完整结果。grow replay <session-id> [--speed <倍率>]在只读终端界面按时间回放历史,支持暂停、调整速度、浏览子 Agent、查看详情和选择文本。回放不启动模型或工具,也不写入原会话。
用量与终端界面
- 用户在模型输出途中补充输入时,状态栏继续展示已有可信样本的 prompt cache 命中率,并标明统计范围。Goal 状态栏、详情和只读回放也显示命中率;没有可计算样本时显示
N/A。 - Ask 卡片展示用户自由输入的实际答案;修正相邻工具组的选择边框、粘贴后的按键边界和文件搜索交互。
- Minimal 新会话欢迎卡在会话绑定后写入终端历史,避免首轮输出时消失。
- 当项目目录与用户目录指向同一 Workflow 路径时,只发现一次定义。
模型配置
- 文档和契约明确
api_backend的覆盖顺序:模型级设置优先于 provider 默认值,同一 provider 可为不同模型选择不同 API 格式。