Registro de compatibilidad
Los contratos de compatibilidad de Plugin se registran en el registro central ensrc/plugins/compat/registry.ts. Cada registro contiene:
- un código de compatibilidad estable
- estado:
active,deprecated,removal-pendingoremoved - propietario:
sdk,config,setup,channel,provider,plugin-execution,agent-runtimeocore - fechas de introducción y obsolescencia, cuando corresponda
- una fecha de eliminación exacta una vez que el mantenedor responsable la apruebe; si se omite
removeAfter, una superficie obsoleta no podrá eliminarse - orientación sobre la sustitución
- documentación, diagnósticos y pruebas que cubren el comportamiento anterior y el nuevo
src/commands/doctor/shared/deprecation-compat.ts. Esos registros cubren las formas de
configuración antiguas, las disposiciones del registro de instalaciones y las capas de compatibilidad de reparación que quizá deban
seguir disponibles después de eliminar la ruta de compatibilidad del entorno de ejecución.
Las revisiones de versiones deben comprobar ambos registros. No elimine una migración de
Doctor solo porque haya caducado el registro correspondiente de compatibilidad del entorno de ejecución o de la configuración;
verifique primero que no exista ninguna ruta de actualización compatible que aún necesite
la reparación. Vuelva a validar también cada anotación de sustitución durante la planificación de la versión,
ya que la propiedad de los plugins y el alcance de la configuración pueden cambiar a medida que los proveedores
y los canales salen del núcleo.
Política de obsolescencia
OpenClaw no debe eliminar un contrato de Plugin documentado en la misma versión que introduce su sustituto. Secuencia de migración:- Añada el nuevo contrato.
- Mantenga conectado el comportamiento anterior mediante un adaptador de compatibilidad con nombre.
- Emita diagnósticos o advertencias cuando los autores de plugins puedan actuar.
- Documente la sustitución y el calendario.
- Pruebe tanto las rutas anteriores como las nuevas.
- Espere durante el periodo de migración anunciado.
- Elimine únicamente con una aprobación explícita para una versión con cambios incompatibles.
active.
Áreas de compatibilidad actuales
La revisión de julio de 2026 eliminó los alias caducados del SDK raíz, el manifiesto, el proveedor, el entorno de ejecución, la marca del registro y la configuración web propiedad de plugins. Las migraciones de Doctor siguen registrándose por separado para que las rutas de actualización compatibles aún puedan reparar configuraciones antiguas. Las áreas de compatibilidad con fecha restantes son:- los periodos de las subrutas del SDK de agosto y septiembre que se indican en la guía de migración
- los alias de enlaces
api.on("deactivate", ...)yapi.on("subagent_spawning", ...) - el registro de incrustaciones específico de memoria y el puente del almacén de sesiones beta.5
- los alias de devoluciones de llamada entrantes de WhatsApp que se describen a continuación
- el análisis explícito del destino del canal y
openclaw/plugin-sdk/messaging-targets - los alias del agente Pi integrado
- los alias distribuidos del SDK del arnés de agentes, cuya eliminación está pendiente de una nueva decisión de migración documentada externamente
Alias planos de devoluciones de llamada entrantes de WhatsApp
Las devoluciones de llamada del entorno de ejecución de WhatsApp entreganWebInboundMessage: los contextos
anidados canónicos event, payload, quote, group y platform, además de
alias planos obsoletos para los campos de devolución de llamada distribuidos. El código nuevo de devoluciones de llamada
debe leer los contextos anidados. El código que construya mensajes de devolución de llamada anidados
limpios puede usar WebInboundCallbackMessage; los receptores de compatibilidad que
aún introduzcan mensajes antiguos planos de pruebas o plugins deben usar
LegacyFlatWebInboundMessage o WebInboundMessageInput.
Los alias planos seguirán disponibles hasta el 2026-08-30; este periodo se aplica
solo al acceso mediante alias planos, no a la forma anidada, que es el contrato canónico
del entorno de ejecución. La anotación @deprecated de TypeScript de cada alias plano
indica su sustituto anidado exacto. Ejemplos habituales:
id,timestampyisBatchedpasan aevent.body,mediaPath,mediaType,mediaFileName,mediaUrl,locationyuntrustedStructuredContextpasan apayload.to,chatId, los campos del remitente y del propio usuario,sendComposing,reply(...)ysendMedia(...)pasan aplatform.- Los campos
replyTo*pasan aquote; los campos de asunto, participante y mención del grupo pasan agroup.
payload.untrustedStructuredContext se extrae de las cargas útiles entrantes del
proveedor. Los plugins deben examinar label, source y type antes de
considerar que su payload es autoritativo.
Campos de admisión entrantes de WhatsApp
Los mensajes de devolución de llamada de WhatsApp aceptados contienenadmission, un sobre
seguro para exposición pública que representa la decisión de control de acceso que admitió el mensaje. El código nuevo
de devoluciones de llamada debe leer los datos de admisión desde msg.admission en lugar de
los campos de admisión de nivel superior anteriores.
Los campos de nivel superior seguirán disponibles hasta el 2026-08-30. La anotación
@deprecated de TypeScript de cada campo indica su sustituto:
fromyconversationIdpasan aadmission.conversation.id.accountIdpasa aadmission.accountId.accessControlPassedes una vista de compatibilidad derivada deadmission.ingress.decision === "allow"; en los mensajes que ya contienenadmission, escribir el booleano heredado no reescribe el grafo de entrada.chatTypepasa aadmission.conversation.kind.
Paquete del inspector de plugins
El inspector de plugins debe residir fuera del repositorio central de OpenClaw como un paquete o repositorio independiente respaldado por los contratos versionados de compatibilidad y manifiesto. La CLI inicial debe ser:--json para obtener una salida estable
legible por máquinas en las anotaciones de CI. El núcleo de OpenClaw debe exponer
los contratos y accesorios de prueba que el inspector pueda consumir, pero no debe publicar el
binario del inspector desde el paquete principal openclaw.
Canal de aceptación para mantenedores
Use Blacksmith Testbox respaldado por Crabbox para el canal de aceptación de paquetes instalables cuando valide el inspector externo con paquetes de Plugin de OpenClaw. Ejecútelo desde un repositorio de OpenClaw limpio después de compilar el paquete:Notas de la versión
Las notas de la versión deben incluir las próximas obsolescencias de plugins con las fechas previstas y enlaces a la documentación de migración, antes de que una ruta de compatibilidad pase aremoval-pending o removed.