2.7 KB · updated 2026-07-06 · md

v0.12.2.md

docs/release-notes/v0.12.2.md

Tesserae v0.12.2 — daemon fd-exhaustion + recency-aware ask

<!-- translations:start -->

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

<!-- translations:end -->

Released 2026-06-30 · PyPI · GitHub release · pip install --upgrade tesserae==0.12.2

Two bug fixes. Drop-in over v0.12.x.

tesserae engine no longer exhausts file descriptors

A long-running daemon (especially fleet mode, watching many projects) could spiral into Too many open files / unable to open database file storms that cascaded into failed compiles, an unreadable fleet registry, and codex temp-file errors — everything sharing the process file-descriptor table.

The cause: the session tailer kept every project transcript in its known set and opened each one's .jsonl (plus a sqlite connection) on every tick just to check for new bytes. With tens of thousands of finished transcripts that's tens of thousands of opens per tick — faster than the OS reclaims them. Now a cheap stat() skips the open entirely when a transcript has no new bytes, vanished files are dropped from the tracked set, and a truncated/rotated file is re-read from the start. Steady-state is ~0 opens for the idle majority; only growing transcripts are read.

tesserae ask is recency-aware

A federated ask about recent work could surface weeks-old session-synthesis nodes (titled e.g. "Review ALL improvements that were just made") at the top — they're the strongest semantic match for "recent work" yet the oldest content, and pure relevance ranking had no recency signal.

Federated recall now blends a node's relevance with a recency score so newer nodes surface: relevance still dominates (a modest 0.25 default), session nodes anchor on their session timestamps (started_at/ended_at), a node dated only in its title (2026-05-18 — …) is anchored on that date, and a genuinely undated node is treated as neutral rather than fresh. Tune or disable it with tesserae ask --recency-weight <0..1> (0 = pure relevance, the previous behavior). Compiled and exported artifacts are unaffected and stay byte-deterministic.

Upgrading from v0.12.x

Drop-in. If you run tesserae engine against many projects, this is a recommended upgrade.