fix(release): keep core runtime plugins installed · openclaw/openclaw@ad264a9
steipete
·
2026-05-02
·
via Recent Commits to openclaw:main
File tree
scripts/e2e/lib/kitchen-sink-plugin
| Original file line number | Diff line number | Diff line change |
|---|
@@ -68,6 +68,9 @@
|
68 | 68 | "build": { |
69 | 69 | "openclawVersion": "2026.5.1-beta.1" |
70 | 70 | }, |
| 71 | +"bundle": { |
| 72 | +"includeInCore": true |
| 73 | + }, |
71 | 74 | "release": { |
72 | 75 | "publishToClawHub": true, |
73 | 76 | "publishToNpm": true |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -148,7 +148,6 @@ const INVALID_PROBE_DIAGNOSTIC_SURFACE_MODES = new Set(["full", "conformance", "
|
148 | 148 | |
149 | 149 | function assertExpectedDiagnostics(surfaceMode, errorMessages) { |
150 | 150 | const expectedErrorMessages = new Set([ |
151 | | -'agent harness "kitchen-sink-agent-harness" registration missing required runtime methods', |
152 | 151 | 'channel "kitchen-sink-channel-probe" registration missing required config helpers', |
153 | 152 | "cli registration missing explicit commands metadata", |
154 | 153 | "only bundled plugins can register Codex app-server extension factories", |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -250,6 +250,37 @@ describe("package dist inventory", () => {
|
250 | 250 | }); |
251 | 251 | }); |
252 | 252 | |
| 253 | +it("keeps publishable core-package runtime plugin dist trees in the inventory", async () => { |
| 254 | +await withTempDir({ prefix: "openclaw-dist-inventory-core-runtime-" }, async (packageRoot) => { |
| 255 | +const coreRuntime = path.join(packageRoot, "dist", "extensions", "core-chat", "index.js"); |
| 256 | +const corePackageJson = path.join(packageRoot, "extensions", "core-chat", "package.json"); |
| 257 | + |
| 258 | +await fs.mkdir(path.dirname(coreRuntime), { recursive: true }); |
| 259 | +await fs.mkdir(path.dirname(corePackageJson), { recursive: true }); |
| 260 | +await fs.writeFile(coreRuntime, "export {};\n", "utf8"); |
| 261 | +await fs.writeFile( |
| 262 | +corePackageJson, |
| 263 | +JSON.stringify({ |
| 264 | +name: "@openclaw/core-chat", |
| 265 | +openclaw: { |
| 266 | +bundle: { |
| 267 | +includeInCore: true, |
| 268 | +}, |
| 269 | +release: { |
| 270 | +publishToClawHub: true, |
| 271 | +publishToNpm: true, |
| 272 | +}, |
| 273 | +}, |
| 274 | +}), |
| 275 | +"utf8", |
| 276 | +); |
| 277 | + |
| 278 | +await expect(writePackageDistInventory(packageRoot)).resolves.toEqual([ |
| 279 | +"dist/extensions/core-chat/index.js", |
| 280 | +]); |
| 281 | +}); |
| 282 | +}); |
| 283 | + |
253 | 284 | it("reports runtime-created install staging dirs during installed dist verification", async () => { |
254 | 285 | await withTempDir({ prefix: "openclaw-dist-inventory-stage-" }, async (packageRoot) => { |
255 | 286 | const realFile = path.join(packageRoot, "dist", "real-AbC123.js"); |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -104,6 +104,14 @@ function isPublishableExternalizedBundledManifest(value: unknown): boolean {
|
104 | 104 | if (!release || typeof release !== "object") { |
105 | 105 | return false; |
106 | 106 | } |
| 107 | +const bundle = (openclaw as { bundle?: unknown }).bundle; |
| 108 | +if ( |
| 109 | +bundle && |
| 110 | +typeof bundle === "object" && |
| 111 | +(bundle as { includeInCore?: unknown }).includeInCore === true |
| 112 | +) { |
| 113 | +return false; |
| 114 | +} |
107 | 115 | const typedRelease = release as { publishToClawHub?: unknown; publishToNpm?: unknown }; |
108 | 116 | return typedRelease.publishToNpm === true || typedRelease.publishToClawHub === true; |
109 | 117 | } |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。