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-newsroom 和 langchain-ai/openwiki——每一个都在采纳前针对 Tesserae 已有内容进行了验证。核心主题:代理消费的内容现在是正确的、新鲜的,并且在构建时就是可发现的。
编译上下文不再引用被淘汰的节点
compile_context 现在默认排除被替代节点和仲裁失败方(include_superseded=True 恢复它们)。一个在 LLM 仲裁中失败的声明之前会与其获胜方相同地被引用;共享的 superseded_ids() 辅助函数现在在 search_nodes、fresh_insights 和 node_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来选择退出。