Strikte Konfigurationsvalidierung (nur-Doctor-Migrationen)
Ziele
- Unbekannte Config-Keys ueberall ablehnen (Root + verschachtelt), ausser Root-
$schema-Metadaten. - Plugin-Config ohne Schema ablehnen; dieses Plugin nicht laden.
- Legacy-Auto-Migration beim Laden entfernen; Migrationen laufen nur via Doctor.
- Doctor (Dry-Run) beim Start automatisch ausfuehren; bei ungueltiger Config nicht-diagnostische Befehle blockieren.
Nicht-Ziele
- Abwaertskompatibilitaet beim Laden (Legacy-Keys migrieren nicht automatisch).
- Stilles Verwerfen unerkannter Keys.
Strikte Validierungsregeln
- Config muss auf jeder Ebene exakt dem Schema entsprechen.
- Unbekannte Keys sind Validierungsfehler, ausser Root-
$schemawenn es ein String ist. plugins.entries.<id>.configmuss durch das Plugin-Schema validiert werden. Fehlt ein Schema, Plugin-Laden blockieren mit klarem Fehler.- Plugin-Manifeste (
openclaw.plugin.json) sind fuer alle Plugins erforderlich.
Doctor-Flow
- Doctor laeuft bei jedem Config-Laden (Standard: Dry-Run).
- Bei ungueltiger Config: Zusammenfassung + handlungsfaehige Fehler ausgeben. Anweisung:
openclaw doctor --fix. openclaw doctor --fix: Migrationen anwenden, unbekannte Keys entfernen, aktualisierte Config schreiben.
Befehlsgating (bei ungueltiger Config)
Erlaubt (nur diagnostisch): openclaw doctor, logs, health, help, status, gateway status.
Alles andere muss hart fehlschlagen: “Config invalid. Run openclaw doctor --fix.”
Tests
- Unbekannter Key Ablehnung (Root + verschachtelt).
- Plugin ohne Schema -> Plugin-Laden blockiert mit klarem Fehler.
- Ungueltige Config -> Gateway-Start blockiert ausser diagnostische Befehle.
- Doctor-Dry-Run auto;
doctor --fixschreibt korrigierte Config.