2.6 KB · updated 2026-07-06 · md

v0.12.2.zh.md

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

Tesserae v0.12.2 — 守护进程文件描述符耗尽 + 支持时效性感知的询问

<!-- translations:start -->

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

<!-- translations:end -->

发布于 2026-06-30 · PyPI · GitHub release · pip install --upgrade tesserae==0.12.2

两个错误修复。可直接升级至 v0.12.x。

tesserae engine 不再耗尽文件描述符

长期运行的守护进程(尤其是在舰队模式下监视多个项目)可能会陷入 Too many open files / unable to open database file 风暴,导致编译失败、舰队注册表无法读取和 codex 临时文件错误级联——所有这些都在进程文件描述符表中共享资源。

原因是:会话追踪器在其已知集合中保留了*每个*项目的记录,并在每个时刻打开每个项目的 .jsonl(加上一个 sqlite 连接)仅仅为了检查是否有新字节。对于数万个已完成的记录,这意味着每个时刻打开数万次——速度快于操作系统回收它们的速度。现在,当记录没有新字节时,廉价的 stat() 调用会完全跳过打开操作,消失的文件会从跟踪集合中删除,被截断/轮转的文件会从头开始重新读取。在稳定状态下,大多数空闲的项目的打开次数约为 ~0;只有增长的记录被读取。

tesserae ask 现已支持时效性感知

联邦化的 ask 关于*最近*的工作时,可能在顶部显示数周前的会话合成节点(例如标题为*"查看刚刚完成的所有改进"*)——它们在语义上最符合"最近的工作",但却是最旧的内容,纯粹的相关性排名没有时效性信号。

联邦化回溯现在将节点的相关性与时效性评分相混合,以便较新的节点浮出水面:相关性仍然占主导(默认值为 0.25),未标记日期的节点被视为中立而非新鲜,仅在其标题中标记日期的节点(2026-05-18 — …)锚定在该日期。可以使用 tesserae ask --recency-weight <0..1> 调整或禁用它(0 = 纯相关性,之前的行为)。编译和导出的制品不受影响,仍然保持字节确定性。

从 v0.12.x 升级

可直接升级。如果你针对多个项目运行 tesserae engine,强烈推荐进行此次升级。