Skip to content

v0.18.0

Choose a tag to compare

@LIUTod LIUTod released this 08 Oct 10:56

Highlights

  • Hardened subagent contracts and delivery. Subagent capability contracts are tightened, and interject delivery joins the collaboration toolchain.
  • RLM kernel lifecycle. The persistent Python kernel gains lifecycle hardening and cancellation semantics.
  • TUI engine 1.0.4. The rendering engine is upgraded with runtime safeguards around the update path.
  • Bounded memory everywhere. Transcript entries funnel through a bounded ingress, the committed tree is capped at the retention point, old entries collapse into a stub, and tool-output previews are bounded at ingest. Terminal tasks and mailboxes are evicted, web caches are capped, and orphaned timers are cleared. The memo store is now shared per home directory, and memory read() pages rows with a keyset cursor instead of loading everything.
  • Session close-out. Session close runs through a dispose registry: subagent-owned LSP resources are released when the subagent ends, the session log is released after LSP/MCP teardown, metadata and exit hooks flush before the log sink closes, and SessionEnd still fires when the metadata flush fails. Subagent completion awaits only the bounded resource release, accepted subagent mail survives the child's terminal state, and a test proves every close-out registration releases its collaborator.
  • Shell and task lifecycle. Parked-command sweeps are scoped strictly to the owning session; evicted timed-out commands are killed and the sweep is observable. Retired tasks keep their output queue until drained, late output is capped, and waitForTerminal resolves against retired entries.
  • TUI polish. Tail previews no longer show torn ANSI fragments, stale text selection is dropped when the transcript reflows, the stats memo keys on a monotonic ingest counter, the task-output view returns to its task list, image-generation status surfaces in help, and permission-mode badges are color-coded per theme (tests kept within the lint budget).
  • Provider and tool fixes. ltod retries busy provider replies and surfaces broken finish reasons; script failures honor the configured output budget; abort signals are wired into jian iteration options.
  • Session forking. Web forks honor the damaged-journal guard, and sessions fork from the full on-disk journal.
  • Maintenance. Dependency upgrades land with the version bump.

Package versions

All packages bumped to 0.18.0.

中文补充

  • 子代理协议加固:能力契约收紧,新增 interject 投递;RLM 常驻内核补齐生命周期与取消语义。
  • TUI 引擎升级至 1.0.4,运行时防护同步加固。
  • 全面有界化:转写经有界入口、已提交树按保留点封顶、旧条目折叠为 stub、工具输出预览入库即截断;终态任务与邮箱淘汰、Web 缓存封顶、孤儿定时器清理;memo 存储按 home 目录共享,read() 改 keyset 分页。
  • 会话收尾走 dispose 注册表:子代理结束释放其 LSP 资源;日志在 LSP/MCP 拆除后释放;元数据与退出钩子先于日志汇关闭完成冲刷;SessionEnd 在元数据 flush 失败时仍触发;子代理收尾只等待有界的资源释放,已接收的子代理邮件在子代理终态后仍保留,并有测试逐项证明收尾注册会释放对应协作者。
  • Shell 与任务:驻留命令清扫严格归属会话,被淘汰的超时命令会被杀掉且清扫可观测;退役任务的输出队列保留至排空,迟到输出封顶,waitForTerminal 正确解析退役条目。
  • TUI 修复:尾部预览不再撕裂 ANSI;回流时丢弃过期选区;统计 memo 以单调入库计数为键;任务输出视图可返回任务列表;生图状态进入帮助面板;权限模式标签按主题配色(测试保持 lint 预算内)。
  • 模型与工具:ltod 对繁忙供应商回复重试并暴露异常结束原因;脚本失败遵守输出预算;abort 信号接入 jian 迭代选项。
  • 会话分叉:Web 端遵守损坏日志护栏,从完整磁盘日志分叉。
  • 维护:依赖升级与版本号提升一并合入。