fix: prefer bundled plugin schema

This commit is contained in:
Peter Steinberger
2026-01-20 08:47:44 +00:00
parent 069b50635b
commit c5e732951b

View File

@@ -335,6 +335,12 @@ export function loadClawdbotPlugins(options: PluginLoadOptions = {}): PluginRegi
...(pluginSdkAlias ? { alias: { "clawdbot/plugin-sdk": pluginSdkAlias } } : {}), ...(pluginSdkAlias ? { alias: { "clawdbot/plugin-sdk": pluginSdkAlias } } : {}),
}); });
const bundledIds = new Set(
discovery.candidates
.filter((candidate) => candidate.origin === "bundled")
.map((candidate) => candidate.idHint),
);
const seenIds = new Map<string, PluginRecord["origin"]>(); const seenIds = new Map<string, PluginRecord["origin"]>();
const memorySlot = normalized.slots.memory; const memorySlot = normalized.slots.memory;
let selectedMemoryPluginId: string | null = null; let selectedMemoryPluginId: string | null = null;
@@ -442,6 +448,22 @@ export function loadClawdbotPlugins(options: PluginLoadOptions = {}): PluginRegi
: undefined; : undefined;
if (!definition?.configSchema) { if (!definition?.configSchema) {
const hasBundledFallback =
candidate.origin !== "bundled" && bundledIds.has(candidate.idHint);
if (hasBundledFallback) {
record.enabled = false;
record.status = "disabled";
record.error = "missing config schema (using bundled plugin)";
registry.plugins.push(record);
registry.diagnostics.push({
level: "warn",
pluginId: record.id,
source: record.source,
message: record.error,
});
continue;
}
logger.error(`[plugins] ${record.id} missing config schema`); logger.error(`[plugins] ${record.id} missing config schema`);
record.status = "error"; record.status = "error";
record.error = "missing config schema"; record.error = "missing config schema";