5.3 KB · updated 2026-07-31 · md

v0.28.4.de.md

docs/i18n/release-notes/v0.28.4.de.md

Tesserae v0.28.4 — deine anderen Konten wurden nie genutzt

<!-- translations:start -->

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

<!-- translations:end -->

Released 2026-07-31 · PyPI · GitHub release · pip install --upgrade tesserae==0.28.4

Tesserae rotiert über deine angemeldeten CLI-Konten, damit ein Konto am Limit an das nächste übergibt, statt den Rest des Laufs an die deterministische Extraktion zu verlieren. Diese Schleife war abgeschaltet — und zwar in genau der häufigsten Art, wie Tesserae läuft.

Eine Umgebungsvariable legte den gesamten Mechanismus lahm

CLAUDE_CONFIG_DIR oder CODEX_HOME zu setzen ersetzte die gefundene Kontenliste durch dieses eine Verzeichnis. Jeder aus einer Claude-Code-Sitzung gestartete Prozess erbt CLAUDE_CONFIG_DIR — eine Kompilierung konnte also nur das Konto der Sitzung nutzen, die sie gestartet hatte, und als dieses versiegte, hatte die Rotation kein Ziel mehr.

Am eigenen Graphen dieses Projekts an einem einzigen Tag gemessen:

  • Eine Kompilierung erschöpfte das 5-Stunden-Limit eines Kontos und ließ 1.531 Dokumente in die deterministische Extraktion fallen, während zwei weitere angemeldete Konten mit vollem Kontingent brachlagen.
  • Ein späterer Lauf verlor 1.590 weitere durch das abgelaufene OAuth eines Kontos — bei einem gesunden Konto direkt daneben.

Der Graph war still von ~13.000 Knoten auf 5.155 geschrumpft, bevor es jemandem auffiel.

Die Umgebungsvariable benennt jetzt das Konto, das zuerst versucht wird, nicht das einzig zulässige.

Du entscheidest, welche Konten verbraucht werden

llm_claude_config_dirs und das neue llm_codex_homes (eine Liste in Rotationsreihenfolge) sind maßgeblich, sobald sie gesetzt sind: Außerhalb wird nichts versucht, und sie schlagen die ambiente Umgebungsvariable, die geerbt und nicht gewählt ist.

{
  "llm_codex_homes": ["/Users/you/.codex-work", "/Users/you/.codex-personal"]
}

Jeder Provider behält seinen eigenen Schlüssel, denn ein Claude-CLI-Konfigurations- verzeichnis und ein Codex-Home sind auf der Platte verschiedene Dinge. Die Codex-Erkennung verlangt jetzt zusätzlich auth.json — auf einer realen Maschine schloss das 24 verstreute ~/.codex-*.log-Dateien aus, von denen jede pro Dokument ein von vornherein aussichtsloses codex exec kostete.

Ein erschöpftes Konto kostet nicht mehr einen Subprozess pro Dokument

Kontingent ist eine Tatsache über das Konto, nicht über das Dokument. Nachdem alle konfigurierten Konten ihr Limit gemeldet hatten, startete der Lauf weiterhin pro Konto und pro verbleibendem Dokument einen CLI-Kindprozess, um dasselbe zu hören. Dieses Urteil wird jetzt für den Rest des Laufs behalten.

Es ist bewusst schwer auszulösen: Jedes versuchte Konto muss eine erwiesene Sackgasse sein, und mindestens eines muss ausdrücklich „you've hit your … limit" gesagt haben. Ein einziger Timeout darunter, und der Lauf versucht es weiter — transient ist nicht erschöpft. Das Urteil gilt pro Client, sodass ein langlebiger Daemon nach dem Zurücksetzen des Limits nicht blockiert bleibt.

Eine Kompilierung, die ihre Konzeptschicht verliert, sagt es jetzt

Compiled project wiki: processed=2492 skipped=0 fallbacks=1531 nodes=… edges=…
WARNING: 1531 of 2492 document(s) (61.4%) fell back to deterministic extraction —
their concept layer is missing from this graph.

fallbacks=N steht in der maschinenlesbaren Zusammenfassungszeile, damit CI daran ansetzen kann; die menschenlesbare Zeile steigt jenseits von 50 % von note: zur Warnung. Beide nennen die Wiederherstellung, die kein Neukompilieren des Korpus verlangt:

tesserae compile --changed-only --retry-fallbacks

Das ist #92. Genau dieses Schweigen machte alle obigen Fehler einen Tag lang unsichtbar. Der Exit-Code bleibt unangetastet — das wäre eine Vertragsänderung für alles, was compile skriptet, und verdient eine eigene Entscheidung.

Außerdem

Der Claude-Extraktor übergibt --max-turns 1 nicht mehr. Das Flag zählt Tool-Aufrufe statt Antworten, also verbrauchte auf einer Maschine mit konfigurierten MCP-Servern der erste Tool-Aufruf des Modells den einzigen Zug, und die CLI beendete sich, bevor JSON ausgegeben wurde. Was die „ein Schuss"-Absicht tatsächlich braucht, ist --strict-mcp-config.

@jokerized/tesserae wird jetzt über npm-OIDC-Trusted-Publishing aus GitHub Actions veröffentlicht, sodass Releases Provenance-Attestierungen tragen und kein langlebiges npm-Token mehr existiert.

Upgrade von v0.28.3

Direkter Austausch. Keine API- oder Schemaänderung; llm_codex_homes ist additiv, und das singuläre llm_codex_home funktioniert weiterhin.

Wenn du mehrere Konten nutzt, kompiliere neu. Frühere Versionen können degradierte Dokumente hinterlassen haben, die ein frischer Lauf zurückholt — dank Cache kosten nur die betroffenen Dateien etwas:

tesserae compile --changed-only --retry-fallbacks