diff --git a/CHANGELOG.md b/CHANGELOG.md index 354874c67fc..88b2f1b7cbe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -65,7 +65,7 @@ Docs: https://docs.openclaw.ai - CLI/configure: keep web-search configure prompts on cold plugin registry metadata until the user chooses managed search setup. Thanks @vincentkoc. - Plugins/chat commands: refresh the persisted plugin registry after `/plugins enable` and `/plugins disable`, matching the CLI mutation path. Thanks @vincentkoc. - Plugins/compat: mark `OPENCLAW_DISABLE_PERSISTED_PLUGIN_REGISTRY` as a deprecated break-glass switch and point operators at registry repair instead. Thanks @vincentkoc. -- Plugins/compat: expand the central compatibility registry with dated owners, replacements, and removal targets for legacy SDK, manifest, setup, registry-migration, and agent-runtime surfaces. Thanks @vincentkoc. +- Plugins/compat: expand the central compatibility registry with dated owners, replacements, and maximum three-month removal targets for legacy SDK, manifest, setup, registry-migration, and agent-runtime surfaces. Thanks @vincentkoc. - Plugins/registry: ignore stale persisted registry reads when plugin policy no longer matches current config, and stamp generated registry files with a do-not-edit warning. Thanks @vincentkoc. - Config/plugins: keep plugin command-alias validation on cold manifest metadata instead of importing the runtime alias resolver. Thanks @vincentkoc. - Security/plugins: keep web-search credential presence checks on cold config, env, and manifest metadata instead of importing web-search provider runtime. Thanks @vincentkoc. diff --git a/docs/plugins/compatibility.md b/docs/plugins/compatibility.md index 23f974fbd51..363f1777b17 100644 --- a/docs/plugins/compatibility.md +++ b/docs/plugins/compatibility.md @@ -71,9 +71,10 @@ The migration sequence is: 7. Remove only with explicit breaking-release approval. Deprecated records must include a warning start date, replacement, docs link, -and target removal date. Do not add a deprecated compatibility path with an -open-ended removal window unless maintainers explicitly decide it is permanent -compatibility and mark it `active` instead. +and target removal date no more than three months after deprecation. Do not add +a deprecated compatibility path with an open-ended removal window unless +maintainers explicitly decide it is permanent compatibility and mark it +`active` instead. ## Current compatibility areas diff --git a/src/plugins/compat/registry.ts b/src/plugins/compat/registry.ts index 1f356f5dc1b..3b2ea953b55 100644 --- a/src/plugins/compat/registry.ts +++ b/src/plugins/compat/registry.ts @@ -8,7 +8,7 @@ export const PLUGIN_COMPAT_RECORDS = [ introduced: "2026-04-24", deprecated: "2026-04-24", warningStarts: "2026-04-24", - removeAfter: "2026-07-01", + removeAfter: "2026-07-24", replacement: "`before_model_resolve` and `before_prompt_build` hooks", docsPath: "/plugins/sdk-migration", surfaces: ["plugin hooks", "plugins inspect", "status diagnostics"], @@ -35,7 +35,7 @@ export const PLUGIN_COMPAT_RECORDS = [ introduced: "2026-04-24", deprecated: "2026-04-24", warningStarts: "2026-04-24", - removeAfter: "2026-07-01", + removeAfter: "2026-07-24", replacement: "focused `openclaw/plugin-sdk/` imports", docsPath: "/plugins/sdk-migration", surfaces: ["openclaw/plugin-sdk", "openclaw/plugin-sdk/compat"], @@ -85,7 +85,7 @@ export const PLUGIN_COMPAT_RECORDS = [ introduced: "2026-04-24", deprecated: "2026-04-24", warningStarts: "2026-04-24", - removeAfter: "2026-07-01", + removeAfter: "2026-07-24", replacement: "`setup.providers[].envVars` and `providerAuthChoices`", docsPath: "/plugins/manifest", surfaces: ["openclaw.plugin.json providerAuthEnvVars", "provider setup"], @@ -99,7 +99,7 @@ export const PLUGIN_COMPAT_RECORDS = [ introduced: "2026-04-24", deprecated: "2026-04-24", warningStarts: "2026-04-24", - removeAfter: "2026-07-01", + removeAfter: "2026-07-24", replacement: "`channelConfigs..schema` and setup descriptors", docsPath: "/plugins/manifest", surfaces: ["openclaw.plugin.json channelEnvVars", "channel setup"], @@ -183,7 +183,7 @@ export const PLUGIN_COMPAT_RECORDS = [ introduced: "2026-04-24", deprecated: "2026-04-25", warningStarts: "2026-04-25", - removeAfter: "2026-08-01", + removeAfter: "2026-07-25", replacement: "`agentRuntime` config naming", docsPath: "/plugins/sdk-agent-harness", surfaces: ["agents.defaults.embeddedHarness", "model/provider runtime selection"], @@ -197,7 +197,7 @@ export const PLUGIN_COMPAT_RECORDS = [ introduced: "2026-04-24", deprecated: "2026-04-25", warningStarts: "2026-04-25", - removeAfter: "2026-08-01", + removeAfter: "2026-07-25", replacement: "`openclaw/plugin-sdk/agent-runtime`", docsPath: "/plugins/sdk-agent-harness", surfaces: ["openclaw/plugin-sdk/agent-harness", "openclaw/plugin-sdk/agent-harness-runtime"], @@ -211,7 +211,7 @@ export const PLUGIN_COMPAT_RECORDS = [ introduced: "2026-04-24", deprecated: "2026-04-25", warningStarts: "2026-04-25", - removeAfter: "2026-08-01", + removeAfter: "2026-07-25", replacement: "`agentRuntime` ids and policy metadata", docsPath: "/plugins/sdk-agent-harness", surfaces: ["manifest/catalog execution policy", "runtime selection"], @@ -236,7 +236,7 @@ export const PLUGIN_COMPAT_RECORDS = [ introduced: "2026-04-25", deprecated: "2026-04-25", warningStarts: "2026-04-25", - removeAfter: "2026-07-15", + removeAfter: "2026-07-25", replacement: "`openclaw plugins registry --refresh` and `openclaw doctor --fix`", docsPath: "/cli/plugins#registry", surfaces: ["OPENCLAW_DISABLE_PERSISTED_PLUGIN_REGISTRY", "plugin registry reads"], @@ -250,7 +250,7 @@ export const PLUGIN_COMPAT_RECORDS = [ introduced: "2026-04-25", deprecated: "2026-04-25", warningStarts: "2026-04-25", - removeAfter: "2026-07-15", + removeAfter: "2026-07-25", replacement: "`openclaw plugins registry --refresh` and `openclaw doctor --fix`", docsPath: "/cli/plugins#registry", surfaces: [ @@ -268,7 +268,7 @@ export const PLUGIN_COMPAT_RECORDS = [ introduced: "2026-04-24", deprecated: "2026-04-26", warningStarts: "2026-04-26", - removeAfter: "2026-08-01", + removeAfter: "2026-07-26", replacement: "`register(api)` plugin entrypoint", docsPath: "/plugins/sdk-entrypoints", surfaces: ["plugin module `activate(api)`", "plugin loader registration"], @@ -293,7 +293,7 @@ export const PLUGIN_COMPAT_RECORDS = [ introduced: "2026-04-24", deprecated: "2026-04-26", warningStarts: "2026-04-26", - removeAfter: "2026-08-01", + removeAfter: "2026-07-26", replacement: "`catalog.run(...)` provider catalog hook", docsPath: "/plugins/sdk-migration", surfaces: ["provider plugin `discovery` hook", "provider catalog resolution"], @@ -307,7 +307,7 @@ export const PLUGIN_COMPAT_RECORDS = [ introduced: "2026-04-24", deprecated: "2026-04-26", warningStarts: "2026-04-26", - removeAfter: "2026-08-01", + removeAfter: "2026-07-26", replacement: "`openclaw.channel.exposure` metadata", docsPath: "/plugins/sdk-setup", surfaces: ["openclaw.channel.showConfigured", "openclaw.channel.showInSetup"], @@ -321,7 +321,7 @@ export const PLUGIN_COMPAT_RECORDS = [ introduced: "2026-04-24", deprecated: "2026-04-26", warningStarts: "2026-04-26", - removeAfter: "2026-08-01", + removeAfter: "2026-07-26", replacement: "focused channel SDK subpaths, especially `openclaw/plugin-sdk/channel-runtime-context`", docsPath: "/plugins/sdk-migration", @@ -336,7 +336,7 @@ export const PLUGIN_COMPAT_RECORDS = [ introduced: "2026-04-24", deprecated: "2026-04-26", warningStarts: "2026-04-26", - removeAfter: "2026-08-01", + removeAfter: "2026-07-26", replacement: "`openclaw/plugin-sdk/command-status`", docsPath: "/plugins/sdk-migration", surfaces: [ @@ -354,7 +354,7 @@ export const PLUGIN_COMPAT_RECORDS = [ introduced: "2026-04-24", deprecated: "2026-04-26", warningStarts: "2026-04-26", - removeAfter: "2026-08-01", + removeAfter: "2026-07-26", replacement: "`OpenClawConfig`", docsPath: "/plugins/sdk-migration", surfaces: ["openclaw/plugin-sdk `ClawdbotConfig` type export"],