fix(release): keep core runtime plugins installed

This commit is contained in:
Peter Steinberger
2026-05-02 11:48:28 +01:00
parent 5dff0397cf
commit ad264a9f5a
4 changed files with 42 additions and 1 deletions

View File

@@ -68,6 +68,9 @@
"build": {
"openclawVersion": "2026.5.1-beta.1"
},
"bundle": {
"includeInCore": true
},
"release": {
"publishToClawHub": true,
"publishToNpm": true

View File

@@ -148,7 +148,6 @@ const INVALID_PROBE_DIAGNOSTIC_SURFACE_MODES = new Set(["full", "conformance", "
function assertExpectedDiagnostics(surfaceMode, errorMessages) {
const expectedErrorMessages = new Set([
'agent harness "kitchen-sink-agent-harness" registration missing required runtime methods',
'channel "kitchen-sink-channel-probe" registration missing required config helpers',
"cli registration missing explicit commands metadata",
"only bundled plugins can register Codex app-server extension factories",

View File

@@ -250,6 +250,37 @@ describe("package dist inventory", () => {
});
});
it("keeps publishable core-package runtime plugin dist trees in the inventory", async () => {
await withTempDir({ prefix: "openclaw-dist-inventory-core-runtime-" }, async (packageRoot) => {
const coreRuntime = path.join(packageRoot, "dist", "extensions", "core-chat", "index.js");
const corePackageJson = path.join(packageRoot, "extensions", "core-chat", "package.json");
await fs.mkdir(path.dirname(coreRuntime), { recursive: true });
await fs.mkdir(path.dirname(corePackageJson), { recursive: true });
await fs.writeFile(coreRuntime, "export {};\n", "utf8");
await fs.writeFile(
corePackageJson,
JSON.stringify({
name: "@openclaw/core-chat",
openclaw: {
bundle: {
includeInCore: true,
},
release: {
publishToClawHub: true,
publishToNpm: true,
},
},
}),
"utf8",
);
await expect(writePackageDistInventory(packageRoot)).resolves.toEqual([
"dist/extensions/core-chat/index.js",
]);
});
});
it("reports runtime-created install staging dirs during installed dist verification", async () => {
await withTempDir({ prefix: "openclaw-dist-inventory-stage-" }, async (packageRoot) => {
const realFile = path.join(packageRoot, "dist", "real-AbC123.js");

View File

@@ -104,6 +104,14 @@ function isPublishableExternalizedBundledManifest(value: unknown): boolean {
if (!release || typeof release !== "object") {
return false;
}
const bundle = (openclaw as { bundle?: unknown }).bundle;
if (
bundle &&
typeof bundle === "object" &&
(bundle as { includeInCore?: unknown }).includeInCore === true
) {
return false;
}
const typedRelease = release as { publishToClawHub?: unknown; publishToNpm?: unknown };
return typedRelease.publishToNpm === true || typedRelease.publishToClawHub === true;
}