From 6dfb03ab2ef05a1351ade9e1f3e30503d693d485 Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Sun, 26 Apr 2026 03:25:10 -0700 Subject: [PATCH] fix(plugins): record crabpot compat deprecations --- docs/plugins/compatibility.md | 4 ++-- src/plugin-sdk/index.ts | 2 ++ src/plugins/compat/registry.ts | 14 ++++++++++++++ src/plugins/contracts/plugin-sdk-index.test.ts | 8 +++++++- 4 files changed, 25 insertions(+), 3 deletions(-) diff --git a/docs/plugins/compatibility.md b/docs/plugins/compatibility.md index 804216d7c1a..127e5ca0bb0 100644 --- a/docs/plugins/compatibility.md +++ b/docs/plugins/compatibility.md @@ -86,8 +86,8 @@ Current compatibility records include: `register(api)` - legacy SDK aliases such as `openclaw/extension-api`, `openclaw/plugin-sdk/channel-runtime`, `openclaw/plugin-sdk/command-auth` - status builders, `openclaw/plugin-sdk/test-utils`, and the `ClawdbotConfig` - type alias + status builders, `openclaw/plugin-sdk/test-utils`, and the `ClawdbotConfig` / + `OpenClawSchemaType` type aliases - bundled plugin allowlist and enablement behavior - legacy provider/channel env-var manifest metadata - legacy provider plugin hooks and type aliases while providers move to diff --git a/src/plugin-sdk/index.ts b/src/plugin-sdk/index.ts index 67bb19a9498..4077cf6fcd8 100644 --- a/src/plugin-sdk/index.ts +++ b/src/plugin-sdk/index.ts @@ -80,6 +80,8 @@ export type { export type { OpenClawConfig } from "../config/config.js"; /** @deprecated Use OpenClawConfig instead */ export type { OpenClawConfig as ClawdbotConfig } from "../config/config.js"; +/** @deprecated Use OpenClawConfig instead */ +export type { OpenClawConfig as OpenClawSchemaType } from "../config/config.js"; export type { MemoryPluginCapability, MemoryPluginPublicArtifact, diff --git a/src/plugins/compat/registry.ts b/src/plugins/compat/registry.ts index 0848f5ccfbe..ae7a905473a 100644 --- a/src/plugins/compat/registry.ts +++ b/src/plugins/compat/registry.ts @@ -367,6 +367,20 @@ export const PLUGIN_COMPAT_RECORDS = [ diagnostics: ["plugin SDK compatibility warning"], tests: ["src/plugins/contracts/plugin-sdk-index.test.ts"], }, + { + code: "openclaw-schema-type-alias", + status: "deprecated", + owner: "sdk", + introduced: "2026-04-26", + deprecated: "2026-04-26", + warningStarts: "2026-04-26", + removeAfter: "2026-07-26", + replacement: "`OpenClawConfig` from `openclaw/plugin-sdk/config-schema`", + docsPath: "/plugins/sdk-migration", + surfaces: ["openclaw/plugin-sdk `OpenClawSchemaType` type export"], + diagnostics: ["plugin SDK compatibility warning"], + tests: ["src/plugins/contracts/plugin-sdk-index.test.ts"], + }, { code: "legacy-extension-api-import", status: "deprecated", diff --git a/src/plugins/contracts/plugin-sdk-index.test.ts b/src/plugins/contracts/plugin-sdk-index.test.ts index 81f46fb7cf3..ba6c82e250e 100644 --- a/src/plugins/contracts/plugin-sdk-index.test.ts +++ b/src/plugins/contracts/plugin-sdk-index.test.ts @@ -1,8 +1,9 @@ import fs from "node:fs/promises"; import path from "node:path"; import { fileURLToPath } from "node:url"; -import { describe, expect, it } from "vitest"; +import { describe, expect, expectTypeOf, it } from "vitest"; import { buildPluginSdkPackageExports } from "../../plugin-sdk/entrypoints.js"; +import type { ClawdbotConfig, OpenClawConfig, OpenClawSchemaType } from "../../plugin-sdk/index.js"; const pluginSdkIndexPath = fileURLToPath(new URL("../../plugin-sdk/index.ts", import.meta.url)); @@ -104,6 +105,11 @@ describe("plugin-sdk exports", () => { ]); }); + it("keeps deprecated root config type aliases aligned", () => { + expectTypeOf().toEqualTypeOf(); + expectTypeOf().toEqualTypeOf(); + }); + it("keeps package.json plugin-sdk exports synced with the manifest", async () => { const packageJsonPath = path.join(process.cwd(), "package.json"); const packageJson = JSON.parse(await fs.readFile(packageJsonPath, "utf8")) as {