v0.4.0 — Extraction-feedback loop (Tesserae learns from your corrections)
Minor release. New capability: Tesserae now learns to extract better from the corrections you already make. No breaking changes. 1273 tests passing.
The feedback loop (PR #20)
Until now Tesserae accreted data and reshuffled its own nodes, but never learned to extract better. The human corrections it already captured — your vault edits and review accept/reject decisions — were written to a report and discarded. v0.4.0 closes that loop.
How it works:
- Collect (always on): every compile + review-apply records human corrections to
.tesserae/extraction-feedback.jsonl(deduped; clustered on captured node_type/field/source — never node_id, which renames/merges). - Distill:
tesserae project evolveclusters the corrections, LLM-phrases each cluster ≥ 3 events into one guidance bullet (cached by cluster-hash; deterministic fallback when no LLM), and writes.tesserae/extraction-guidance.md. - Inject (opt-in):
tesserae project compile --use-extraction-feedbackslices that guidance by node-type and injects it into the right extractor's prompt — so the extractor stops repeating mistakes you fixed.
Design highlights:
- Human corrections are the gold label — we explicitly rejected a lint-metric hill-climber (Goodhart trap). Lint is triage-only.
- Guidance is human-curatable —
evolvepreserves your hand-edits and honors your deletions (cache-hash ledger distinguishes "you deleted this" from "brand new"), never resurrecting dismissed bullets. - Routed by node_type to the extractor that produces that type (a Claim edit doesn't pollute session-finding phrasing).
- Guardrail: v1 drops any generated bullet that recommends a corrected-away value; injection is off-by-default so the corpus builds before you act on it. (Full extraction A/B holdout deferred to v2.)
Brainstormed with codex, spec'd, planned, and built TDD; codex-reviewed (2 P2s — flag-wiring + curation-preservation — fixed before merge). Spec/plan: docs/superpowers/{specs,plans}/2026-05-26-extraction-feedback-loop*.
Also
chore: gitignore pip-* transient scratch dirs.- Both
pyproject.tomland.claude-plugin/plugin.jsonbumped (the manifest was missed in 0.3.1; bumped together now).
Upgrade
pip install --upgrade tesserae==0.4.0No behavior change unless you opt in: run tesserae project evolve to build guidance, then compile --use-extraction-feedback to use it. Collection happens silently in the background so your corpus starts building immediately.
Coming in v0.4.x / v0.5
A sophisticated graph-view upgrade (HypePaper-style: family color encoding, importance-scaled sizing, structural-vs-semantic edge classes, node-detail drawer) is in flight on a branch.