refactor: expire July 24 plugin compat records (#112944)

This commit is contained in:
Peter Steinberger
2026-07-23 03:04:34 -04:00
committed by GitHub
parent 307b3060a9
commit 6ef77d7c7e
3 changed files with 1 additions and 100 deletions
+1 -1
View File
@@ -1,3 +1,3 @@
# Distinct OPENCLAW_* names in production source under src, packages, and extensions.
# Ratchet: lower this number when cleanup removes names; never raise it.
530
529
-64
View File
@@ -660,22 +660,6 @@ const PLUGIN_COMPAT_RECORDS = [
releaseNote:
"The process-global API-provider publication facade was removed; provider plugins now publish through their lifecycle-owned registration, and host runtimes register directly on their prepared ApiRegistry.",
},
{
code: "legacy-before-agent-start",
status: "removed",
owner: "sdk",
introduced: "2026-04-24",
deprecated: "2026-04-24",
warningStarts: "2026-04-24",
removeAfter: "2026-07-24",
replacement: "`before_model_resolve` and `before_prompt_build` hooks",
docsPath: "/plugins/sdk-migration",
surfaces: ["plugin hooks", "plugins inspect", "status diagnostics"],
diagnostics: ["plugin compatibility notice"],
tests: ["src/plugins/compat/registry.test.ts"],
releaseNote:
"Legacy `before_agent_start` hook compatibility was removed; plugins must use `before_model_resolve` and `before_prompt_build`.",
},
{
code: "legacy-deactivate-hook-alias",
status: "deprecated",
@@ -796,22 +780,6 @@ const PLUGIN_COMPAT_RECORDS = [
releaseNote:
"Session/transcript file APIs were removed with the SQLite session storage flip; plugins now use session identity and Gateway/runtime session helpers.",
},
{
code: "legacy-root-sdk-import",
status: "removed",
owner: "sdk",
introduced: "2026-04-24",
deprecated: "2026-04-24",
warningStarts: "2026-04-24",
removeAfter: "2026-07-24",
replacement: "focused `openclaw/plugin-sdk/<subpath>` imports",
docsPath: "/plugins/sdk-migration",
surfaces: ["openclaw/plugin-sdk", "openclaw/plugin-sdk/compat"],
diagnostics: ["OPENCLAW_PLUGIN_SDK_COMPAT_DEPRECATED"],
tests: ["src/plugins/compat/registry.test.ts"],
releaseNote:
"The deprecated compatibility surfaces tracked by legacy-root-sdk-import were removed in the July 2026 sweep.",
},
{
code: "hook.before_tool_call.terminal-block-approval",
status: "active",
@@ -1049,38 +1017,6 @@ const PLUGIN_COMPAT_RECORDS = [
diagnostics: ["test-only compatibility path"],
tests: ["src/plugins/config-state.test.ts"],
},
{
code: "provider-auth-env-vars",
status: "removed",
owner: "setup",
introduced: "2026-04-24",
deprecated: "2026-04-24",
warningStarts: "2026-04-24",
removeAfter: "2026-07-24",
replacement: "`setup.providers[].envVars` and `providerAuthChoices`",
docsPath: "/plugins/manifest",
surfaces: ["openclaw.plugin.json providerAuthEnvVars", "provider setup"],
diagnostics: ["manifest compatibility diagnostic"],
tests: ["src/plugins/compat/registry.test.ts"],
releaseNote:
"The deprecated compatibility surfaces tracked by provider-auth-env-vars were removed in the July 2026 sweep.",
},
{
code: "channel-env-vars",
status: "removed",
owner: "channel",
introduced: "2026-04-24",
deprecated: "2026-04-24",
warningStarts: "2026-04-24",
removeAfter: "2026-07-24",
replacement: "`channelConfigs.<id>.schema` and setup descriptors",
docsPath: "/plugins/manifest",
surfaces: ["openclaw.plugin.json channelEnvVars", "channel setup"],
diagnostics: ["manifest compatibility diagnostic"],
tests: ["src/plugins/compat/registry.test.ts"],
releaseNote:
"The deprecated compatibility surfaces tracked by channel-env-vars were removed in the July 2026 sweep.",
},
{
code: "activation-agent-harness-hint",
status: "active",
-35
View File
@@ -43,7 +43,6 @@ const withBundledPluginEnablementCompatMock = vi.fn();
const listImportedBundledPluginFacadeIdsMock = vi.fn();
const listImportedRuntimePluginIdsMock = vi.fn();
let buildPluginSnapshotReport: typeof import("./status.js").buildPluginSnapshotReport;
let buildPluginRegistrySnapshotReport: typeof import("./status.js").buildPluginRegistrySnapshotReport;
let buildPluginDiagnosticsReport: typeof import("./status.js").buildPluginDiagnosticsReport;
let buildPluginInspectReport: typeof import("./status.js").buildPluginInspectReport;
let buildAllPluginInspectReports: typeof import("./status.js").buildAllPluginInspectReports;
@@ -388,7 +387,6 @@ describe("plugin status reports", () => {
buildPluginDiagnosticsReport,
buildPluginCompatibilityWarnings,
buildPluginInspectReport,
buildPluginRegistrySnapshotReport,
buildPluginSnapshotReport,
formatPluginCompatibilityNotice,
summarizePluginCompatibility,
@@ -476,39 +474,6 @@ describe("plugin status reports", () => {
});
});
it("carries installed-index compatibility metadata into registry snapshot reports", () => {
loadPluginRegistrySnapshotWithMetadataMock.mockReturnValue({
snapshot: createInstalledPluginIndexSnapshot([
{
pluginId: "provider-env-plugin",
manifestPath: "/tmp/provider-env-plugin/openclaw.plugin.json",
manifestHash: "manifest-hash",
rootDir: "/tmp/provider-env-plugin",
origin: "workspace",
enabled: true,
startup: {
sidecar: false,
memory: false,
deferConfiguredChannelFullLoadUntilAfterListen: false,
agentHarnesses: [],
},
compat: ["provider-auth-env-vars"],
},
]),
source: "derived",
diagnostics: [],
});
loadPluginManifestRegistryForInstalledIndexMock.mockReturnValue({
plugins: [{ id: "provider-env-plugin", name: "Provider Env Plugin" }],
diagnostics: [],
});
const report = buildPluginRegistrySnapshotReport({ config: {} });
expect(report.plugins[0]?.id).toBe("provider-env-plugin");
expect(report.plugins[0]?.compat).toEqual(["provider-auth-env-vars"]);
});
it("uses a metadata snapshot load for snapshot reports", () => {
buildPluginSnapshotReport({ config: {}, workspaceDir: "/workspace" });