v0.28.0.de.md
docs/i18n/release-notes/v0.28.0.de.md
Tesserae v0.28.0 — Hooks die dein Geld nicht versehentlich ausgeben können
<!-- translations:start -->
English · 한국어 · 中文 · 日本語 · Русский · Español · Français
<!-- translations:end -->
Released 2026-07-27 · PyPI · GitHub release · pip install --upgrade tesserae==0.28.0
Upgrade für das erste Element. Es ist ein Ausgabe-Bug, und er wurde auf einer echten Maschine reproduziert.
Die $HOME-Falle
Eine Wissensbasis in ~/.tesserae lässt $HOME wie ein Projektstamm aussehen. Das resolve_project_root() des Plugins wanderte aufwärts vom Arbeitsverzeichnis zum ersten gefundenen .tesserae/ — so dass jede Sitzung außerhalb eines registrierten Projekts zu $HOME auflöste, und der PostToolUse Hook hintergrundet tesserae compile --changed-only über das ganze Home-Verzeichnis.
15k Dateien, ein 795 MB großer Graph, etwa 10 Stunden LLM-Ausgaben, von einem setsid'd Prozess, der die Sitzung, die ihn startete, überlebte. Es feuerte bei jedem Edit/Write.
Der Fallback machte es noch schlimmer als es aussieht. Wenn kein .tesserae/ gefunden wurde, machte der Resolver das:
echo "$PWD"
return 0
Er behauptete, jedes Verzeichnis sei ein Projekt. Aufrufer testeten dann -d "$root/.tesserae" — was für jedes Arbeitsverzeichnis unter $HOME passte. Dieser Test war die letzte Verteidigungslinie und der Fallback ging direkt hindurch.
Zwei Verweigerungen jetzt. $HOME ist niemals ein Projektstamm, weder durch das Aufwärts-Laufen noch durch den Git-Root-Weg. Und eine Nicht-Übereinstimmung gibt eine leere Antwort mit Non-Zero-Status zurück, sodass Aufrufer nichts tun, anstatt zu raten.
Hooks die Geld kosten sind Opt-In. TESSERAE_HOOK_AUTOCOMPILE=1 aktiviert automatische Neukompilierungen; ohne sie tun sie nichts. Nur auf die beiden angewendet, die wirklich Geld kosten — posttooluse-edit.sh und session-end.sh. session-start.sh führt deterministisches code sync aus und pretooluse-compile.sh fängt nur einen Kompilierbefehl ab, den du selbst eingegeben hast, daher ist keiner gated.
Ein Hook, der Model-Arbeit im Hintergrund ausführt, sollte absichtlich aktiviert werden, nicht nach Ankunft der Rechnung deaktiviert werden.
Die Python CLI hatte diesen Bug nie: ProjectWiki.load() verwendet den Pfad, der ihm gegeben wurde, und wandert nicht auf, sodass ein manuelles tesserae compile außerhalb eines Projekts sauber fehlschlägt. Die Falle war nur je in den Shell Hooks.
OKF v0.2
Googles Open Knowledge Format v0.2 macht Provenienz, Vertrauen, Lebenszyklus und Attestation zu erstklassigen Bürgern. Tesserae emittiert jetzt v0.2 und verbraucht immer noch v0.1.
Emittiert: generated: {by, at} von Extraktor- und Agent-Markierungen; sources mit den Glaubwürdigkeitssignalen (usage_count von Sitzungszählungen, usage_window, last_modified, und author nur wenn genau eine authored_by Person existiert); status: deprecated und stale_after abgeleitet von supersedes Kanten.
Nicht emittiert: verified, und daher kein Vertrauens-Tier über unverified. Tesserae hat kein aufgezeichnetes Verifikations-Ereignis mit einem Akteur und einen Zeitstempel. Seine vier Provenienzklassen sind Kanteneigenschaften — wie stark der Graph ein Tripel lizenziert — während OKFs Vertrauensfamilie ein pro-Konzept Verifikations-Ereignis ist. Verschiedene Achsen; Mapping eine auf die andere würde Vertrauen durch eine Spezifikation waschen. Über 5,193 echte Konzepte verifiziert: verified emittiert 0 mal, generated.by beansprucht human: 0 mal.
Drei Consumer-Bugs sind behoben, alle gefunden durch Import des Spec's Appendix A wörtlich durch die echte CLI, wo sie vorher abstürzten: Unquotierte YAML-Zeitstempel lösen zu datetime auf und brachen die Serialisierung; der v0.1 timestamp Fallback no-opte stillschweigend auf der gleichen unquotierten Form; und §6.1's empfohlener Bundle-relativer Link (/tables/customers.md) erzeugte Null Kanten, daher importierte ein Spec-folgendes Bundle als getrennte Knoten.
Ein Validator, der aus den eigenen Klauseln der Spec geschrieben wurde, besteht einen 5,193-Konzept-Export mit Null Ausfällen, verlustlos und byte-identisch.
Tautologische Verdikt sind benannt
Etwa 40% von verify_claim's SUPPORTED Verdikt waren evidenced_by Kanten, deren zitierte Spanne das Ziel der Kante selbst ist — "C evidenced_by S", bestätigt durch Lesen von S. Wahr, uninformativ, und vorher nicht zu unterscheiden von einem echten dokumentgestützten Verdikt.
Die Nutzlast sagt jetzt welche es ist. Über alle 15,284 Kanten: jede evidenced_by SUPPORTED markiert, nichts anderes markiert, und kein Verdikt änderte den Wahrheitswert. Additiv, daher ist der sieben-Verdikt-Vertrag von v0.27.0 unverändert.
Upgrade von v0.27.0
Drop-In für die Bibliothek. Installiere das Plugin neu, um den Hook-Fix zu bekommen, und wenn du automatische Neukompilierungen zurück willst, setze TESSERAE_HOOK_AUTOCOMPILE=1.
Wenn ein verirrtes .tesserae in $HOME von einer früheren versehentlichen Kompilierung existiert, ist es jetzt inert — aber es ist auch groß, und das Entfernen ist sicher, sobald du bestätigt hast, dass deine Registry und Konfiguration woanders leben.