Skip to content

Commit 443115c

Browse files
authored
fix(config): warn for retired skill-workshop plugin entry instead of failing validation (#90244) (#90838)
1 parent 5b9cb3b commit 443115c

2 files changed

Lines changed: 14 additions & 1 deletion

File tree

src/config/config.plugin-validation.test.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1362,6 +1362,15 @@ describe("config plugin validation", () => {
13621362
expectRemovedPluginWarnings(res, removedId, removedId);
13631363
});
13641364

1365+
// Regression for #90244: skill-workshop was extracted into a built-in tool;
1366+
// upgraded configs that still reference plugins.entries.skill-workshop must warn,
1367+
// not block startup with "plugin not found".
1368+
it("warns for removed skill-workshop plugin id instead of failing validation", () => {
1369+
const removedId = "skill-workshop";
1370+
const res = validateRemovedPluginConfig(removedId);
1371+
expectRemovedPluginWarnings(res, removedId, removedId);
1372+
});
1373+
13651374
it("does not auto-allow config-loaded overrides of bundled web search plugin ids", () => {
13661375
const res = validateInSuite({
13671376
plugins: {

src/config/validation.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,11 @@ import { coerceSecretRef } from "./types.secrets.js";
5050
import { isBuiltInModelProviderOverlayId } from "./zod-schema.core.js";
5151
import { OpenClawSchema } from "./zod-schema.js";
5252

53-
const LEGACY_REMOVED_PLUGIN_IDS = new Set(["google-antigravity-auth", "google-gemini-cli-auth"]);
53+
const LEGACY_REMOVED_PLUGIN_IDS = new Set([
54+
"google-antigravity-auth",
55+
"google-gemini-cli-auth",
56+
"skill-workshop",
57+
]);
5458
const BLOCKED_PLUGIN_CANDIDATE_PREFIX = "blocked plugin candidate:";
5559

5660
type UnknownIssueRecord = Record<string, unknown>;

0 commit comments

Comments
 (0)