v0.8.15 / v0.11.3
灵台 TUI/Portal v0.8.15 与内核 v0.11.3
这轮正式发布把 TUI/Portal v0.8.15 与内核 v0.11.3 配对,主题是“把 runtime 真正运行起来”:TUI 侧给出更多可见性与控制(skill-backed 多语言 `/help` 命令、用于只读检查 notification 的 `/notification`、daemon 浏览器、kanban 里的 daemon 计数、tool-call 显示控制、自适应邮件输入、`/clear` 走内核 context clear),内核侧让 agent runtime 在真实负载下更稳(notification sync 不再把像 diary 的 synthesized 文本漏进可见对话历史,移除嵌套 secondary 工具调用通道、残留的 stale `secondary` 参数被忽略并记录,顶层工具调用新增生命周期 tracing 与用于分组工具批次的 API-call ID,并补强错误结果事件,外加严格 relay 兼容的 avatar schema、重复工具错误恢复、OpenAI Responses compact 阈值处理、stale 通知的版本守卫、从 stale 进程恢复 refresh、MCP stale stdio 重启、daemon 上限 / dead-parent 清理)。知识与技能表面更易教学——molt history 知识条目、强化的 molt 前检查清单、textbook distillation、只读 preset-health 子技能、可选技能仓库 remote、LICC chat 教程、Graphify / cyclic manifold 文档;研究与 setup 路径更实用——授权发布商 PDF 层、in-house publisher 抽取、Zotero 机构全文交接、学术证据 gate、install.sh 可写 bin 回退、AED 最大尝试设置、Codex service tier 预设。候选窗口:189 个文件、+15,541 / -3,428 行,跨 44 个 first-parent merged PR(25 个 TUI/Portal + 19 个内核),外加少量直接 / 文档提交与 star-count 杂务。最终发布验证仍待在打 tag、PyPI 与 Homebrew 发布前完成。
升级 / runtime
这是 TUI/Portal v0.8.15 与内核/runtime 包 lingtai==0.11.3 的正式发布日志。普通 LingTai 项目通过 TUI/Homebrew 路径升级;裸 pip install lingtai 仍只适合发布、诊断或 clean-venv 验证,不是正常用户升级路径。
新功能与改进
-
01
操作者能更好地看见和控制 runtime
这轮发布里最贴近用户的改动在 TUI 本身:让操作者无需离开终端,就能看清 agent 网络在做什么并加以引导的命令和界面。
-
/help命令在 TUI 内渲染 markdown 形式的斜杠命令文档;skill-backed 多语言 help assets 成为命令权威参考,recipe 提示改为指向/help,不再各自重复命令列表,并且 viewer 现在正确接收键盘 / 鼠标输入,q/Esc 与滚动都能正常工作(#277、#279、#281)。 -
/notification命令用只读 Markdown viewer 展示当前 agent 的.notification/*.json,包括聚合 block 与逐 channel entry,并支持rreload(#283)。 - 新的 TUI daemon 浏览器页面让操作者查看并浏览运行中的 daemon(#275),kanban 视图现在显示 daemon 计数(#207)。
- tool-call 显示控制新增截断(默认关闭)、时间戳设置与按 API call 分组的批次间隔,让吵闹的工具输出可被收拢,并按 LLM 往返分开(#276、#282)。
- 邮件输入框高度随内容自适应(#161),
/clear改走内核 context clear,让 TUI 与内核状态保持一致(#222)。
为什么重要:多 agent runtime 只有在人能快速看清“在跑什么”、并按需降噪时才真正可操作。这些改动让 TUI 成为查看与引导 daemon、邮件与命令帮助的统一入口。
-
-
02
Agent runtime 在真实负载下更安全
内核 v0.11.3 集中处理只有在 agent 持续运行后才会暴露的故障:stale 资源、后端不兼容的载荷,以及不该提权的递归调用。嵌套 secondary 工具调用通道——先在本窗口被限制为只读、随后被彻底移除——就是最清楚的例子;notification sync 现在改用 tool-only synthesized pair,不再注入像 diary 的可见文本;顶层工具调用现在也带上了生命周期 tracing。
- 嵌套 secondary 工具调用通道先被收窄为只读(#236,并在 #234 强化触发指引),随后被彻底移除:保留的嵌套
secondaryschema、模块与执行路径都被删除,残留的 stalesecondary参数被忽略并记录、而不再派发,通知/邮件指引改为顶层读取加直接确认,provider 可见的_secondary元数据从 spill manifest 中移除(#241;focused 测试 181 通过,完整套件 2072 通过 / 2 跳过)。随后 notification sync 把正常成功路径改为只注入 synthesizedsystem(action="notification")tool-call/result pair,summary 文本仅保留在 log 中,避免 notification summary 在可见历史里像 diary/user text(#249)。 - 顶层 provider 工具调用在 ToolExecutor 中获得 Phase 1 生命周期 tracing:稳定的
tool_trace_id把 received / normalized / validation / approval / dispatch / durable-log / model-visible 各阶段的事件串起来,并写入既有工具日志;工具错误结果保留 model-visible 输出;每次 LLM 往返也会把api_call_id写入 LLM 与工具事件,让 TUI 可以从源事件数据分组工具批次(#242、#246、#247)。 - avatar schema 为严格 API relay 兼容做了重塑(#226),重复工具错误现在配对为硬停止而不是继续循环(#202),tool-loop guard 未派发恢复也会明确关闭被阻止的调用,避免留下 pending tool-call wire state(#217)。
- OpenAI Responses 遵循配置的 compact 阈值(#227);stale 通知通道的 dismiss 由版本检查守卫(#231);refresh 能从 stale agent 进程恢复(#224);stale MCP stdio 会话被重启而不是留作死链(#222,内核)。
- daemon 上限被遵守(配置的 max emanations,#225),dead-parent 的 daemon 记录在启动时被回收(#233)。
为什么重要:长期运行的 agent 恰恰会累积这些情况——掉线的会话、被拒的 schema、递归发送。把它们堵上能减少静默卡死与权限意外,对一个常驻网络而言,这比任何单一新功能都重要。
- 嵌套 secondary 工具调用通道先被收窄为只读(#236,并在 #234 强化触发指引),随后被彻底移除:保留的嵌套
-
03
知识与技能表面更易教学
一批改动让 agent 读取的手册与技能要么在 molt 之间更耐久,要么对特定任务更直接有用。
- molt / session-journal 历史以知识条目形式记录在 psyche-manual 下,配套模板 asset 与条目中的
molt_count字段(#237);session journal 本身也被记录为 sub-knowledge(内核 #240),molt 前的 LingTai 更新检查清单与记忆指引也被强化(#272)。 - 新增 textbook-distillation 指南(#273)与只读的 preset-health 诊断子技能(#265);技能 / library 页面可暴露可选的仓库 remote(#271)。
- 新增解释 LICC chat 命令流程的教程(#274),文档覆盖 Graphify repo-map(#264)与 cyclic manifold 架构(#267)。
- bash-manual 新增硬性规则:长时运行的 agent / coding CLI(
claude -p、codex exec、opencode run、Cursor agent CLI)必须走 bash async + 轮询,而不是同步 bash,以保持 agent 响应、避免 ACTIVE 阻塞(内核 #243)。
为什么重要:技能是新 agent 学习系统的方式。把 molt 历史记录为结构化知识、并补上聚焦的指南,能让这种学习在继任者之间保持一致,而不是依赖当时恰好在场的那一任。
- molt / session-journal 历史以知识条目形式记录在 psyche-manual 下,配套模板 asset 与条目中的
-
04
研究与 setup 路径更实用
学术研究与首次运行路径补上了在真实机器、面对真实发布商时才会用到的修复。
- 学术研究新增授权发布商 PDF 层(#257)与抽取发布商元数据的 in-house publisher extractor(#258),并补上记录在案的 Zotero 机构全文交接流程(#266)与学术证据验证 gate(#269)。
-
install.sh在非 Homebrew 系统上回退到可写的 bin 目录,而不是直接中止(#240),提升社区安装可靠性;开发前置条件也被写入文档(#260)。 - setup / 首次运行暴露 AED 最大尝试设置(#253),并新增 Codex 预设的 service tier 选项(#256)。
为什么重要:这些是新用户和研究 agent 最先碰到的路径。让安装在非标准机器上也能跑通、让研究能取到授权全文,能消除原本会卡住真实使用的早期摩擦。
贡献者
感谢本发布窗口中提交代码、共同完成提交、参与 PR / review / assignment、报告或推动 issue closure 的贡献者。
验证
最终 release validation 来自干净 release worktree,commit lingtai@d9a9.
- lingtai v0.8.14..v0.8.15 diff 111 files, +10,190 / -1,662
- lingtai-kernel v0.11.2..v0.11.3 diff 79 files, +5,352 / -1,767
- Combined release window 190 files, +15,542 / -3,429 across 44 merged PRs plus the kernel version bump
- Release status published: GitHub tags/releases, PyPI 0.11.3, and Homebrew tap 0.8.15 verified
链接
- TUI/Portal v0.8.14...v0.8.15 compare →
- TUI/Portal release v0.8.15 →
- TUI/Portal release commit d9a96fb →
- Kernel v0.11.2...v0.11.3 compare →
- Kernel release v0.11.3 →
- Kernel release commit 6ff15dd →
- PyPI lingtai 0.11.3 →
- Homebrew tap commit 2e728a6 →
- PR #277 — TUI /help command →
- PR #279 — Skill-backed multilingual TUI help →
- PR #281 — /help markdown viewer input routing →
- PR #276 — Tool call display controls →
- PR #282 — Group tool-call display by API call →
- PR #283 — TUI /notification command →
- PR #161 — Adaptive mail input height →
- PR #207 — Show daemon counts in kanban →
- PR #222 — Route TUI clear through kernel context clear →
- PR #256 — Codex preset service-tier option →
- PR #275 — TUI daemon browser →
- PR #240 — install.sh writable-bin fallback →
- PR #236 — Restrict secondary calls to read-only →
- PR #237 — Document molt history knowledge entries →
- Kernel PR #202 — Repeated tool-error hard stop pairing →
- Kernel PR #217 — Tool-loop guard non-dispatch recovery →
- Kernel PR #226 — Strict relay-compatible avatar schema →
- Kernel PR #231 — Guard stale notification dismiss →
- Kernel PR #233 — Reap dead-parent daemon records →
- Kernel PR #240 — Document session journals as sub-knowledge →
- Kernel PR #241 — Remove secondary nested tool-call channel →
- Kernel PR #242 — Trace tool-call lifecycle events →
- Kernel PR #243 — Document async bash for agent CLIs →
- Kernel PR #246 — Enrich tool error result events →
- Kernel PR #247 — Add API-call IDs to LLM/tool events →
- Kernel PR #249 — Tool-only synthesized notification sync →
- Declined PR #228 — filesystem Time Machine proposal →
- Declined PR #235 — soul flow past-self routing proposal →
- Issue #174 — textbook distillation request →
- Issue #175 — stronger pre-molt identity guidance request →
- Issue #177 — cyclic manifold architecture request →
- Issue #179 — academic evidence gate request →
- Issue #236 — README development prerequisites report →
- Issue #238 — closed not-planned rewind proposal →
- Issue #239 — install.sh writable-bin fallback report →
- Issue #261 — closed duplicate Cloud Mail MCP addon placeholder →
- Issue #263 — closed not-planned Ctrl+T agent-switching report →
- Kernel Issue #230 — daemon completion notification replacement report →
- Kernel Issue #232 — orphaned daemon record report →