Plugin SDK: skip runtime init for CLI metadata mode

This commit is contained in:
Gustavo Madeira Santana
2026-03-29 18:20:07 -04:00
parent ebbe7f642d
commit efad062655
2 changed files with 6 additions and 1 deletions

View File

@@ -292,11 +292,11 @@ export function defineChannelPluginEntry<TPlugin>({
description,
configSchema: resolvedConfigSchema,
register(api: OpenClawPluginApi) {
setRuntime?.(api.runtime);
if (api.registrationMode === "cli-metadata") {
registerCliMetadata?.(api);
return;
}
setRuntime?.(api.runtime);
api.registerChannel({ plugin: plugin as ChannelPlugin });
if (api.registrationMode !== "full") {
return;

View File

@@ -2666,6 +2666,7 @@ module.exports = {
const pluginDir = makeTempDir();
const fullMarker = path.join(pluginDir, "full-loaded.txt");
const modeMarker = path.join(pluginDir, "registration-mode.txt");
const runtimeMarker = path.join(pluginDir, "runtime-set.txt");
fs.writeFileSync(
path.join(pluginDir, "package.json"),
@@ -2701,6 +2702,9 @@ module.exports = {
id: "cli-metadata-channel",
name: "CLI Metadata Channel",
description: "cli metadata channel",
setRuntime() {
require("node:fs").writeFileSync(${JSON.stringify(runtimeMarker)}, "loaded", "utf-8");
},
plugin: {
id: "cli-metadata-channel",
meta: {
@@ -2756,6 +2760,7 @@ module.exports = {
});
expect(fs.existsSync(fullMarker)).toBe(true);
expect(fs.existsSync(runtimeMarker)).toBe(false);
expect(fs.readFileSync(modeMarker, "utf-8")).toBe("cli-metadata");
expect(registry.cliRegistrars.flatMap((entry) => entry.commands)).toContain(
"cli-metadata-channel",