v0.7.1.md
docs/release-notes/v0.7.1.md
Tesserae v0.7.1 — tesserae ingest merges one source without a full recompile
<!-- translations:start -->
한국어 · 中文 · 日本語 · Русский · Español · Français · Deutsch
<!-- translations:end -->
Released 2026-06-10 · PyPI · GitHub release · pip install --upgrade tesserae==0.7.1
tesserae ingest <file|url> is a new top-level command that merges a single document or URL into your knowledge base — without re-extracting the whole corpus — while staying byte-identical to a full compile. Drop in one file, point it at a web page, and your graph updates incrementally instead of paying for a full recompile each time.
1. tesserae ingest <input>... — incremental single-source ingestion
The new command takes one or more inputs — local file paths or http(s) URLs — and folds each into the existing knowledge base on its own. It is distinct from tesserae code ingest: this is document/source ingestion into the main graph, not code indexing.
By default ingest runs an incremental fast path that touches only the new source. The fast path is parity-gated: it is verified byte-identical to a full compile, and if parity can't be guaranteed it automatically falls back to a full recompile so correctness is never at risk. Pass --exact to force the full recompile yourself.
Flags: --exact, --dry-run, --title, --source-kind.
2. URLs are fetched, converted, and tracked with provenance
Give ingest an http(s) URL and it fetches the page, converts it to markdown, and persists it as a tracked source under data/ingested/<slug>.md with provenance front-matter: source_url, fetched_at, content_sha256, and arxiv_id when the source is detected as an arXiv paper.
URL ingestion ships behind a new optional extra so the base install stays lean:
pip install tesserae[ingest-url]
3. Out-of-corpus local files become part of the corpus
When you ingest a local file that lives outside the tracked corpus, ingest copies it into the corpus. That way a later full tesserae compile reproduces the exact same result — the incremental ingest and a from-scratch compile converge on identical bytes.
4. Under the hood: a parity-preserving incremental seam
The incremental fast path is built on a per-invocation incremental_override seam in the compile pipeline. It is inert by default — when nothing overrides it, the engine behaves exactly as before and full-compile parity is preserved. A golden-parity test gates the feature, asserting that an incremental ingest and a full compile produce byte-identical output.
Hardening
Provenance front-matter is now written through a YAML-safe path, closing front-matter value injection (a crafted title or URL can no longer break out of the front-matter block).
Upgrading from v0.7.0
Drop-in. tesserae ingest <file> works out of the box for local files. To ingest URLs, install the extra with pip install tesserae[ingest-url]. Existing tesserae compile / refresh behavior is unchanged — the incremental seam is inert unless ingest drives it.