4.1 KB · updated 2026-07-31 · md

v0.17.0.zh.md

docs/i18n/release-notes/v0.17.0.zh.md

Tesserae v0.17.0 — 编译流程从对标项目学习

<!-- translations:start -->

한국어 · 中文 · 日本語 · Русский · Español · Français · Deutsch

<!-- translations:end -->

发布于 2026-07-09 · PyPI · GitHub 发布 · pip install --upgrade tesserae==0.17.0

本次发布融合了与两个相关 LLM wiki 项目的深度对标中最佳的想法——alfadur7/llm-wiki-newsroomlangchain-ai/openwiki——每一个都在采纳前针对 Tesserae 已有内容进行了验证。核心主题:代理消费的内容现在是正确的、新鲜的,并且在构建时就是可发现的。

编译上下文不再引用被淘汰的节点

compile_context 现在默认排除被替代节点和仲裁失败方(include_superseded=True 恢复它们)。一个在 LLM 仲裁中失败的声明之前会与其获胜方相同地被引用;共享的 superseded_ids() 辅助函数现在在 search_nodesfresh_insightsnode_context 中一致地排除或标记这些。合成页面还会根据实际输入节点 ID 验证每个引用——伪造的 ID 现在会验证失败,并回退到确定性正文。

双层出版门控

Lint 在每次编译的尾部以崩溃安全的方式运行,所以 lint-report.md 总是新鲜的。tesserae compile --strict 把发现转化为非零退出码供 CI 使用——如果 lint 本身崩溃也会安全失败。一个可选的 lint --verify-claims 进一步:它用 LLM 验证被引用的节点是否真的支持引用该句子(有上限、确定性采样、永远不会阻断编译)。

输出快照门控

每次编译后,Tesserae 对编译后的工件进行哈希处理,并报告 Output: changed/unchanged。在 --strict 下,*可疑*状态——输入未变但输出改变——会导致构建失败:这是字节幂等性类 bug 的永久警报器。一个可以直接复制的 CI 刷新工作流在 docs/integrations/ci-refresh.md 中。

代理自行发现知识库

tesserae setup 现在会在目标仓库的 AGENTS.md/CLAUDE.md 中安装一个标记分隔的 Tesserae 指针块(幂等的;在格式错误或重复标记时保持不变;与其他托管块共存)。wiki 根目录的 index.md 被重写为代理入口点:导航指南、一个 MCP 优先的"如何查询"部分、种类表和顶级社区。社区页面现在获得一个确定性的 ## Sources 页脚,列出成员源文件。

编译成本降低,陈旧状态可见

代码图层现在保存一个整层提取缓存 (.tesserae/code-graph-cache.json):当源树的统计清单未变时,缓存的图以字节级完全相同的方式重新实例化,而不是支付完整重新提取遍历的成本(在大型仓库中需要十几秒)。CLI 报告 reused+added ~changed -removed 增量计数。构建历史记录编译时的 git HEAD,lint 为源文件自那以后有改变的代码图节点发出信息级发现——加上一个新的 contradictions.md wiki 页面现在跟踪开放的/已解决的/已过期的声明冲突,graph_ppr 获得 exclude_direct_neighbors 用于 Memex 式的意外连接发现。

社区摘要缓存也在成员内容摘要改变时失效(不只是成员关系),所以一个改变的描述会重新总结,而不是永远提供陈旧的叙述。

升级说明

  • 升级后的第一次编译会报告 Output: changed 一次(社区页面获得 Sources 部分,index.md 成为入口点);随后的编译是字节稳定的。
  • tesserae setup(包括 --yes)默认安装代理指针;在计划中设置 install_agent_pointer=false 来选择退出。