v0.8.0.de.md
docs/i18n/release-notes/v0.8.0.de.md
Tesserae v0.8.0 — tesserae engine --all: ein Engine-Prozess für alle Projekte
<!-- translations:start -->
English · 한국어 · 中文 · 日本語 · Русский · Español · Français
<!-- translations:end -->
Veröffentlicht am 2026-06-13 · PyPI · GitHub release · pip install --upgrade tesserae==0.8.0
Bisher war die Refresh-Engine ein Prozess pro Projekt: N registrierte Projekte bedeuteten N Daemons, die gestartet, gestoppt und im Blick behalten werden mussten. v0.8.0 ergänzt den Flottenmodus — ein einziger Prozess, der alle in ~/.tesserae/registry.json registrierten Projekte aktuell hält.
tesserae engine --all
1. Ein Prozess, alle registrierten Projekte
tesserae engine --all überwacht pro Registry-Eintrag eine projektbezogene Engine-Einheit, jede mit eigenen Watchern und entprellter Recompile-Schleife. Registrieren oder Abmelden eines Projekts wirkt ohne Neustart — die Flotte gleicht sich alle 10 Sekunden mit der Registry ab, startet Einheiten neu, deren registrierte Wurzel umgezogen ist, und belebt Einheiten mit gestorbenem Thread wieder. Projekte, deren Verzeichnis auf der Platte fehlt, werden mit einer Warnung übersprungen, statt die Flotte scheitern zu lassen.
Der bestehende Einzelprojektmodus bleibt unverändert: tesserae engine --project X verhält sich exakt wie zuvor, und die Flotte verweigert die Doppelübernahme eines Projekts, für das bereits eine eigenständige Engine läuft.
2. Flottenweite Compile-Drosselung
Gleichzeitige Compiles verschiedener Projekte teilen sich dieselben LLM-CLI-Konten und deren Rate-Limits. Die Flotte serialisiert sie über eine gemeinsame Semaphore — --compile-slots N (Standard 1) begrenzt, wie viele Compiles flottenweit gleichzeitig laufen. Das ergänzt das projektbezogene Compile-Lock aus v0.7.2: das flock schützt vor externen Compiles, die Semaphore plant die internen.
3. Robuster Lebenszyklus, hart geprüft
Die Flotte durchlief vor dem Merge drei Runden adversarialer Review (Codex, Reasoning-Stufe xhigh); alles Gefundene wurde behoben und ist testabgedeckt:
- Shutdown lässt nie einen Compile im Stich. Unit-Threads sind non-daemon, und das Stop-Fan-out wartet — mit periodischen Log-Warnungen — bis jede Einheit ihre laufende Pipeline beendet hat, auf jedem Exit-Pfad, auch bei einem abstürzenden Reconcile.
- Pidfile ohne Races. Das globale
~/.tesserae/engine.pidwird mitO_CREAT|O_EXCLunter einem Sidecar-flock erworben, sodass zwei gleichzeitige Starts nie beide gewinnen können — und die Flotte entfernt nur ein Pidfile, das ihr noch gehört. Plattformen ohneflockverweigern die automatische Übernahme eines veralteten Pidfiles mit einer klaren Aufforderung zum manuellen Löschen, statt das Race einzugehen. - Eine kaputte Registry kann die Flotte nicht töten. Korruptes JSON, unlesbare Dateien, falsch geformte oder falsey
projects-Werte und fehlerhafte Einzeleinträge lassen die laufenden Einheiten weiterlaufen (geloggt, beim nächsten Tick erneut versucht), statt alles abzureißen.
4. CLI-Details
--all schließt --project aus; im Flottenmodus gelten --debounce und --interval für jede Einheit; --once führt sequenziell einen begrenzten Refresh pro Projekt aus (CI-tauglich). TESSERAE_REGISTRY und TESSERAE_FLEET_PIDFILE überschreiben die Orte von Registry und Pidfile.
Upgrade von v0.7.2
Drop-in; keine Konfigurationsänderungen. Bestehende tesserae engine-Aufrufe verhalten sich identisch. Für den Flottenmodus Projekte registrieren (tesserae projects / MCP-Tool register_project) und tesserae engine --all starten.