Compiler & Robustheit • Mai 2026

Sprint 201: Panikfreies Parsen & CLI Härtung 🛡️

Willkommen zu Sprint 201! Aufsetzend auf den performanten Grundlagen von Sprint 200 haben wir ein wichtiges Stabilitäts-Refactoring abgeschlossen: Die Migration des gesamten Compilers von panikgesteuerter Fehlerfortpflanzung hin zu einem zur Compilezeit sicheren, Result-basierten Modell. Zudem haben wir ungeschützte `unwrap()`-Aufrufe aus der CLI entfernt, damit autonome KI-Agenten KnotenCore-Code sicher und ohne Absturzschleifen ausführen können.

🛡️ Result-Basiertes Parsen

Zuvor führte jede unerwartete Syntax oder ein unbekannter Token im Parser direkt zu einer harten Panik (mit einem JSON-Diagnose-Layout). Dies zwang unseren CLI-Runner dazu, Parser-Panics mittels `catch_unwind` abzufangen – ein schwerfälliges und in Rust unübliches Entwurfsmuster.

In Sprint 201 haben wir die Signaturen des Parsers so umgeschrieben, dass Fehler sicher mit dem `?`-Operator hochgereicht werden. Hierfür wurde das formale `ParseError`-Enum definiert:

pub enum ParseError {
    InvalidJson(String),
    MissingField(String),
    UnexpectedToken { expected: String, found: String },
    UnexpectedChar(char),
    UnexpectedNode(String),
    Other(String),
}

🗜️ Refactoring-Map: Bereinigung von Panics

Hier ist die Übersicht über die Transitionen von panikgesteuerter Logik zu strukturierter Fehlerbehandlung:

Vorher Nachher (Sprint 201)
parse() -> Node parse() -> Result<Node, ParseError>
diagnostic_panic() -> panic!() parse_error() -> Err(ParseError)
expect(token) -> panic!() expect(token) -> Result<(), ParseError>
peek_char().unwrap() peek_char().ok_or_else(...)?
s.parse().unwrap() s.parse().map_err(...)?

🔌 Betroffene Module & CLI-Updates

Alle Komponenten der Engine, die den Parser aufrufen, wurden an das neue `Result` angepasst:

🧪 Robustes Testen & CI

Zur Validierung haben wir den Regressionstest test_parser_invalid_syntax_returns_err hinzugefügt. Dieser übergibt fehlerhaften Code ("let x = ;") und stellt sicher, dass dieser als Err(ParseError) abgefangen wird, anstatt einen Thread-Absturz auszulösen.

Alle 140 Integration- und Unit-Tests laufen einwandfrei und grün durch, und cargo clippy liefert 0 Warnungen für die gesamte Codebasis!