Compatibility registry
Plugin compatibility contracts are tracked in the core registry atsrc/plugins/compat/registry.ts.
Each record has:
- a stable compatibility code
- status:
active,deprecated,removal-pending, orremoved - owner: SDK, config, setup, channel, provider, plugin execution, agent runtime, or core
- introduction and deprecation dates when applicable
- replacement guidance
- docs, diagnostics, and tests that cover the old and new behavior
Plugin inspector package
The plugin inspector should live outside the core OpenClaw repo as a separate package/repository backed by the versioned compatibility and manifest contracts. The day-one CLI should be:- manifest/schema validation
- the contract compatibility version being checked
- install/source metadata checks
- cold-path import checks
- deprecation and compatibility warnings
--json for stable machine-readable output in CI annotations. OpenClaw
core should expose contracts and fixtures the inspector can consume, but should
not publish the inspector binary from the main openclaw package.
Deprecation policy
OpenClaw should not remove a documented plugin contract in the same release that introduces its replacement. The migration sequence is:- Add the new contract.
- Keep the old behavior wired through a named compatibility adapter.
- Emit diagnostics or warnings when plugin authors can act.
- Document the replacement and timeline.
- Test both old and new paths.
- Wait through the announced migration window.
- Remove only with explicit breaking-release approval.
Current compatibility areas
Current compatibility records include:- legacy broad SDK imports such as
openclaw/plugin-sdk/compat - legacy hook-only plugin shapes and
before_agent_start - bundled plugin allowlist and enablement behavior
- legacy provider/channel env-var manifest metadata
- activation hints that are being replaced by manifest contribution ownership
embeddedHarnessandagent-harnessnaming aliases while public naming moves towardagentRuntime- generated bundled channel config metadata fallback while registry-first
channelConfigsmetadata lands
Release notes
Release notes should include upcoming plugin deprecations with target dates and links to migration docs. That warning needs to happen before a compatibility path moves toremoval-pending or removed.