v0.13.0.md
docs/release-notes/v0.13.0.md
Tesserae v0.13.0 — the LLM concept layer is the default
<!-- translations:start -->
한국어 · 中文 · 日本語 · Русский · Español · Français · Deutsch
<!-- translations:end -->
Released 2026-06-30 · PyPI · GitHub release · pip install --upgrade tesserae==0.13.0
Tesserae is an LLM wiki — so compile now builds the concept/claim layer by default, not just a structural skeleton.
compile builds the concept layer by default
Previously, tesserae compile ran the deterministic extractor by default: fast and byte-stable, but structural only — sources, sections, and explicit links, with a sparse concept layer. The richer layer (concepts, claims, capabilities, technical terms, evidence spans, and the typed edges between them) was hidden behind an opt-in, Claude-only --extractor claude-cli flag. For an LLM wiki, that had it backwards.
Now:
--extractor llmis the default.tesserae compilereads each document through your configured provider — codex / claude / Anthropic API, perllm_provider— using the sameLLMJsonClientsession extraction already uses. No more Claude-only path.deterministicis the explicit opt-out —tesserae compile --extractor deterministicfor the fast, key-free, byte-stable mode (CI / reproducible builds). Byte-idempotence is unchanged; it was always a property of this mode.- No default timeout. The old
--claude-timeout=180silently truncated big design docs into a degraded fallback. Extraction now runs to completion; a timeout is opt-in only. - Provider-neutral flags:
--llm-provider,--llm-model,--llm-include,--llm-limit. (claude-cli/selective-claudeand the--claude-*flags still work as deprecated aliases.) - Robust + graceful. No backend configured? It degrades to deterministic with a warning rather than failing. A backend error on one document falls back to deterministic for that doc instead of aborting the whole compile, and content-keyed caching means a re-compile of unchanged docs reuses the prior extraction.
tesserae compile # LLM concept layer, your configured provider
tesserae compile --extractor deterministic # structural / byte-stable / key-free
tesserae compile --extractor selective-llm \
--llm-include "docs/**/*.md" --llm-limit 20 # cost-aware
Faster federated ask
Federated ask re-assembled the cross-project graph (read + parse + namespace + identity-merge every member project) on every query — about a quarter of the latency, redone for each follow-up in a conversation against the same project set. The assembled graph is now memoized in-process, keyed on each member's graph-file change signature: a repeat query is an instant cache hit, and the entry self-invalidates the moment any member project recompiles (no disk cache, no staleness). On a real 6-project / 22.6k-node federation that's a ~0.6 s assembly skipped per repeat query.
Upgrading from v0.12.x
The one behavior change: tesserae compile now does LLM extraction by default. If you want the old structural-only behavior (e.g. in CI, or with no LLM backend), pass --extractor deterministic — and on a machine with no configured provider, compile already falls back to it automatically.