2.4 KB · updated 2026-07-31 · md

v0.20.1.md

docs/release-notes/v0.20.1.md

Tesserae v0.20.1 — long sessions, fully captured

<!-- translations:start -->

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

<!-- translations:end -->

Released 2026-07-14 · PyPI · GitHub release · pip install --upgrade tesserae==0.20.1

A bugfix release for anyone with long agent sessions — which, if Tesserae is doing its job, is everyone.

The 300-turn truncation bug

Session import (_claude_turns / _codex_turns) silently stopped capturing after 300 turns per session. Everything downstream — the chunked LLM extractor, session findings, decisions, the typed graph — only ever saw the first 300 turns of a long session. Insights, decisions, and TODOs from the later part of a marathon session were never extracted, and nothing warned about it.

The cap predates the chunked extraction pipeline and was made obsolete by it: the extractor reads history in max_turns_per_chunk windows with per-turn text caps, so each LLM call's prompt size is bounded regardless of total session length. Truncating at capture time only threw knowledge away.

The fix

The importer default is now a runaway-file backstop (100,000 turns) instead of a truncation point, matching every explicit call site (activity summary, session chunks, live serve). Full conversation history flows into the chunk store and the extractor; per-call LLM context stays bounded by the chunking layer, where that concern belongs.

Incremental compiles stay cheap: chunk caches are index-aligned, so previously extracted chunks of existing sessions remain cache hits — only the newly visible turns are extracted on your next compile. Expect that first recompile after upgrading to do more LLM calls than usual on projects with long sessions; that is the backlog of previously invisible history being extracted once.

No API or schema changes. pip install --upgrade tesserae==0.20.1 (or npm i -g @jokerized/tesserae@0.20.1) and recompile.