Kompatibilitätsregister
Plugin-Kompatibilitätsverträge werden im zentralen Register untersrc/plugins/compat/registry.ts nachverfolgt. Jeder Eintrag enthält:
- einen stabilen Kompatibilitätscode
- Status:
active,deprecated,removal-pendingoderremoved - Verantwortungsbereich:
sdk,config,setup,channel,provider,plugin-execution,agent-runtimeodercore - Einführungs- und Einstellungsdaten, sofern zutreffend
- ein genaues Entfernungsdatum, sobald der zuständige Maintainer es genehmigt; ein fehlendes
removeAfterschließt eine veraltete Oberfläche von der Entfernung aus - Hinweise zum Ersatz
- Dokumentation, Diagnosen und Tests, die das alte und neue Verhalten abdecken
src/commands/doctor/shared/deprecation-compat.ts nachverfolgt. Diese Einträge decken alte
Konfigurationsstrukturen, Layouts des Installationsverzeichnisses und Reparatur-Shims ab, die
möglicherweise auch nach Entfernung des Laufzeit-Kompatibilitätspfads verfügbar bleiben müssen.
Release-Prüfungen sollten beide Register prüfen. Löschen Sie keine Doctor-
Migration, nur weil der zugehörige Laufzeit- oder Konfigurationskompatibilitätseintrag
abgelaufen ist; prüfen Sie zuerst, ob weiterhin ein unterstützter Upgrade-Pfad
die Reparatur benötigt. Validieren Sie während der Release-Planung auch jede
Ersatzanmerkung erneut, da sich Plugin-Verantwortung und Konfigurationsumfang ändern können,
wenn Provider und Kanäle aus dem Kern ausgelagert werden.
Einstellungsrichtlinie
OpenClaw sollte einen dokumentierten Plugin-Vertrag nicht im selben Release entfernen, in dem dessen Ersatz eingeführt wird. Migrationsreihenfolge:- Den neuen Vertrag hinzufügen.
- Das alte Verhalten über einen benannten Kompatibilitätsadapter eingebunden lassen.
- Diagnosen oder Warnungen ausgeben, sobald Plugin-Autoren handeln können.
- Den Ersatz und den Zeitplan dokumentieren.
- Sowohl den alten als auch den neuen Pfad testen.
- Das angekündigte Migrationszeitfenster abwarten.
- Nur mit ausdrücklicher Genehmigung für ein inkompatibles Release entfernen.
active.
Aktuelle Kompatibilitätsbereiche
Bei der Prüfung im Juli 2026 wurden die abgelaufenen Aliasse für das Stamm-SDK, Manifest, Provider, Laufzeit, Register-Flag und die Plugin-eigene Webkonfiguration entfernt. Doctor-Migrationen werden weiterhin separat nachverfolgt, damit unterstützte Upgrade-Pfade alte Konfigurationen weiterhin reparieren können. Die verbleibenden zeitlich begrenzten Kompatibilitätsbereiche sind:- die im Migrationsleitfaden aufgeführten SDK-Unterpfad-Zeitfenster für August und September
- die Hook-Aliasse
api.on("deactivate", ...)undapi.on("subagent_spawning", ...) - speicherspezifische Einbettungsregistrierung und die Sitzungsspeicher-Brücke von beta.5
- die unten beschriebenen Aliasse für eingehende WhatsApp-Callbacks
- explizite Analyse von Kanalzielen und
openclaw/plugin-sdk/messaging-targets - eingebettete Pi-Agent-Aliasse
- die ausgelieferten SDK-Aliasse des Agent-Harness, deren Entfernung noch von einer neuen extern dokumentierten Migrationsentscheidung abhängt
Flache Aliasse für eingehende WhatsApp-Callbacks
WhatsApp-Laufzeit-Callbacks liefernWebInboundMessage: die kanonischen
verschachtelten Kontexte event, payload, quote, group und platform sowie
veraltete flache Aliasse für die ausgelieferten Callback-Felder. Neuer Callback-Code
sollte die verschachtelten Kontexte lesen. Code, der saubere verschachtelte Callback-
Nachrichten erstellt, kann WebInboundCallbackMessage verwenden; Kompatibilitäts-Listener, die
weiterhin alte flache Test- oder Plugin-Nachrichten einspeisen, sollten
LegacyFlatWebInboundMessage oder WebInboundMessageInput verwenden.
Die flachen Aliasse bleiben bis zum 2026-08-30 verfügbar; dieses Zeitfenster gilt
nur für den Zugriff über flache Aliasse, nicht für die verschachtelte Struktur, die den kanonischen
Laufzeitvertrag darstellt. Die TypeScript-Annotation @deprecated jedes flachen Alias
benennt den genauen verschachtelten Ersatz. Häufige Beispiele:
id,timestampundisBatchedwerden untereventverschoben.body,mediaPath,mediaType,mediaFileName,mediaUrl,locationunduntrustedStructuredContextwerden unterpayloadverschoben.to,chatId, Absender-/Selbstfelder,sendComposing,reply(...)undsendMedia(...)werden unterplatformverschoben.- Die Felder von
replyTo*werden unterquoteverschoben; Felder für Gruppenbetreff, Teilnehmer und Erwähnungen werden untergroupverschoben.
payload.untrustedStructuredContext wird aus eingehenden Provider-
Nutzdaten extrahiert. Plugins sollten label, source und type prüfen, bevor
sie dessen payload als maßgeblich behandeln.
Zulassungsfelder für eingehende WhatsApp-Nachrichten
Akzeptierte WhatsApp-Callback-Nachrichten enthaltenadmission, eine öffentlich unbedenkliche
Hülle für die Zugriffskontrollentscheidung, durch die die Nachricht zugelassen wurde. Neuer
Callback-Code sollte Zulassungsinformationen aus msg.admission statt aus
den älteren Zulassungsfeldern auf oberster Ebene lesen.
Die Felder auf oberster Ebene bleiben bis zum 2026-08-30 verfügbar. Die
TypeScript-Annotation @deprecated jedes Feldes benennt dessen Ersatz:
fromundconversationIdwerden nachadmission.conversation.idverschoben.accountIdwird nachadmission.accountIdverschoben.accessControlPassedist eine abgeleitete Kompatibilitätsansicht vonadmission.ingress.decision === "allow"; bei Nachrichten, die bereitsadmissionenthalten, schreibt das Setzen des alten booleschen Werts den Eingangs- graphen nicht neu.chatTypewird nachadmission.conversation.kindverschoben.
Paket des Plugin-Inspektors
Der Plugin-Inspektor sollte außerhalb des zentralen OpenClaw-Repos als separates Paket/Repository angesiedelt sein und auf den versionierten Kompatibilitäts- und Manifestverträgen basieren. Die CLI für den ersten Tag sollte lauten:--json für stabile
maschinenlesbare Ausgaben in CI-Anmerkungen. Der OpenClaw-Kern sollte
Verträge und Fixtures bereitstellen, die der Inspektor verwenden kann, aber die
Inspektor-Binärdatei nicht über das Hauptpaket openclaw veröffentlichen.
Abnahme-Lane für Maintainer
Verwenden Sie die Crabbox-gestützte Blacksmith Testbox für die Abnahme-Lane installierbarer Pakete, wenn der externe Inspektor mit OpenClaw-Plugin- Paketen validiert wird. Führen Sie sie nach dem Erstellen des Pakets aus einem sauberen OpenClaw-Checkout aus:Versionshinweise
Versionshinweise sollten bevorstehende Plugin-Einstellungen mit Zieldaten und Links zur Migrationsdokumentation enthalten, bevor ein Kompatibilitätspfad inremoval-pending oder removed übergeht.