Compare commits

...

2 Commits

Author SHA1 Message Date
Vincent Koc
e691dbe624 Merge branch 'main' into fix/plugin-host-peer-floor 2026-03-21 18:35:06 -07:00
Vincent Koc
cb0ef3f49f fix(plugins): require host floor for new sdk subpaths 2026-03-21 18:25:12 -07:00
18 changed files with 55 additions and 75 deletions

View File

@@ -12,11 +12,6 @@
"peerDependencies": {
"openclaw": ">=2026.3.14"
},
"peerDependenciesMeta": {
"openclaw": {
"optional": true
}
},
"openclaw": {
"extensions": [
"./index.ts"

View File

@@ -16,11 +16,6 @@
"peerDependencies": {
"openclaw": ">=2026.3.14"
},
"peerDependenciesMeta": {
"openclaw": {
"optional": true
}
},
"openclaw": {
"extensions": [
"./index.ts"

View File

@@ -15,11 +15,6 @@
"peerDependencies": {
"openclaw": ">=2026.3.14"
},
"peerDependenciesMeta": {
"openclaw": {
"optional": true
}
},
"openclaw": {
"extensions": [
"./index.ts"

View File

@@ -13,11 +13,6 @@
"peerDependencies": {
"openclaw": ">=2026.3.14"
},
"peerDependenciesMeta": {
"openclaw": {
"optional": true
}
},
"openclaw": {
"extensions": [
"./index.ts"

View File

@@ -6,6 +6,9 @@
"dependencies": {
"zod": "^4.3.6"
},
"peerDependencies": {
"openclaw": ">=2026.3.14"
},
"openclaw": {
"extensions": [
"./index.ts"

View File

@@ -10,11 +10,6 @@
"peerDependencies": {
"openclaw": ">=2026.3.14"
},
"peerDependenciesMeta": {
"openclaw": {
"optional": true
}
},
"openclaw": {
"extensions": [
"./index.ts"

View File

@@ -17,11 +17,6 @@
"peerDependencies": {
"openclaw": ">=2026.3.14"
},
"peerDependenciesMeta": {
"openclaw": {
"optional": true
}
},
"openclaw": {
"extensions": [
"./index.ts"

View File

@@ -13,11 +13,6 @@
"peerDependencies": {
"openclaw": ">=2026.3.14"
},
"peerDependenciesMeta": {
"openclaw": {
"optional": true
}
},
"openclaw": {
"extensions": [
"./index.ts"

View File

@@ -14,11 +14,6 @@
"peerDependencies": {
"openclaw": ">=2026.3.14"
},
"peerDependenciesMeta": {
"openclaw": {
"optional": true
}
},
"openclaw": {
"extensions": [
"./index.ts"

View File

@@ -12,11 +12,6 @@
"peerDependencies": {
"openclaw": ">=2026.3.14"
},
"peerDependenciesMeta": {
"openclaw": {
"optional": true
}
},
"openclaw": {
"extensions": [
"./index.ts"

View File

@@ -13,11 +13,6 @@
"peerDependencies": {
"openclaw": ">=2026.3.14"
},
"peerDependenciesMeta": {
"openclaw": {
"optional": true
}
},
"openclaw": {
"extensions": [
"./index.ts"

View File

@@ -16,11 +16,6 @@
"peerDependencies": {
"openclaw": ">=2026.3.14"
},
"peerDependenciesMeta": {
"openclaw": {
"optional": true
}
},
"openclaw": {
"extensions": [
"./index.ts"

View File

@@ -9,6 +9,9 @@
"@twurple/chat": "^8.0.3",
"zod": "^4.3.6"
},
"peerDependencies": {
"openclaw": ">=2026.3.14"
},
"openclaw": {
"extensions": [
"./index.ts"

View File

@@ -15,11 +15,6 @@
"peerDependencies": {
"openclaw": ">=2026.3.14"
},
"peerDependenciesMeta": {
"openclaw": {
"optional": true
}
},
"openclaw": {
"extensions": [
"./index.ts"

View File

@@ -12,11 +12,6 @@
"peerDependencies": {
"openclaw": ">=2026.3.14"
},
"peerDependenciesMeta": {
"openclaw": {
"optional": true
}
},
"openclaw": {
"extensions": [
"./index.ts"

View File

@@ -13,11 +13,6 @@
"peerDependencies": {
"openclaw": ">=2026.3.14"
},
"peerDependenciesMeta": {
"openclaw": {
"optional": true
}
},
"openclaw": {
"extensions": [
"./index.ts"

View File

@@ -14,11 +14,6 @@
"peerDependencies": {
"openclaw": ">=2026.3.14"
},
"peerDependenciesMeta": {
"openclaw": {
"optional": true
}
},
"openclaw": {
"extensions": [
"./index.ts"

View File

@@ -0,0 +1,49 @@
import { readFileSync } from "node:fs";
import { resolve } from "node:path";
import { describe, expect, it } from "vitest";
const MIN_HOST_VERSION = ">=2026.3.14";
const INSTALLABLE_PLUGIN_IDS_REQUIRING_HOST_FLOOR = [
"bluebubbles",
"discord",
"feishu",
"googlechat",
"irc",
"line",
"matrix",
"mattermost",
"msteams",
"nextcloud-talk",
"nostr",
"tlon",
"twitch",
"voice-call",
"whatsapp",
"zalo",
"zalouser",
] as const;
function readPackageManifest(pluginId: string) {
return JSON.parse(
readFileSync(resolve(process.cwd(), "extensions", pluginId, "package.json"), "utf8"),
) as {
peerDependencies?: Record<string, string>;
peerDependenciesMeta?: Record<string, { optional?: boolean }>;
};
}
describe("installable plugin host peer guardrails", () => {
it("requires a non-optional openclaw peer floor for plugins that rely on new plugin-sdk subpaths", () => {
for (const pluginId of INSTALLABLE_PLUGIN_IDS_REQUIRING_HOST_FLOOR) {
const manifest = readPackageManifest(pluginId);
expect(
manifest.peerDependencies?.openclaw,
`${pluginId} should declare an openclaw peer`,
).toBe(MIN_HOST_VERSION);
expect(
manifest.peerDependenciesMeta?.openclaw?.optional,
`${pluginId} should not mark the openclaw peer optional`,
).not.toBe(true);
}
});
});