

























@@ -1209,9 +1209,8 @@ describe("repairMissingConfiguredPluginInstalls", () => {
12091209});
12101210});
121112111212-it("prefers npm over ClawHub during post-core repair", async () => {
1212+it("passes the post-core compatibility host version to ClawHub repair", async () => {
12131213const npmRoot = makeTempDir();
1214-const packageDir = path.join(npmRoot, "node_modules", "@openclaw", "whatsapp");
12151214mocks.resolveDefaultPluginNpmDir.mockReturnValue(npmRoot);
12161215mocks.listChannelPluginCatalogEntries.mockReturnValue([
12171216{
@@ -1225,20 +1224,23 @@ describe("repairMissingConfiguredPluginInstalls", () => {
12251224},
12261225]);
12271226mocks.installPluginFromClawHub.mockResolvedValue({
1228-ok: false,
1229-error: 'Plugin "@openclaw/whatsapp" requires plugin API >=2026.5.18.',
1230-});
1231-mocks.installPluginFromNpmSpec.mockResolvedValue({
12321227ok: true,
12331228pluginId: "whatsapp",
1234-targetDir: packageDir,
1229+targetDir: "/tmp/openclaw-plugins/whatsapp",
12351230version: "1.2.3",
1236-npmResolution: {
1237-name: "@openclaw/whatsapp",
1231+clawhub: {
1232+source: "clawhub",
1233+clawhubUrl: "https://clawhub.ai",
1234+clawhubPackage: "@openclaw/whatsapp",
1235+clawhubFamily: "code-plugin",
1236+clawhubChannel: "official",
12381237version: "1.2.3",
1239-resolvedSpec: "@openclaw/whatsapp@1.2.3",
1240-integrity: "sha512-whatsapp",
1238+integrity: "sha256-whatsapp",
12411239resolvedAt: "2026-05-01T00:00:00.000Z",
1240+clawpackSha256: "2".repeat(64),
1241+clawpackSpecVersion: 1,
1242+clawpackManifestSha256: "3".repeat(64),
1243+clawpackSize: 1234,
12421244},
12431245});
12441246@@ -1256,18 +1258,27 @@ describe("repairMissingConfiguredPluginInstalls", () => {
12561258},
12571259},
12581260env: {
1261+OPENCLAW_COMPATIBILITY_HOST_VERSION: "2026.5.19",
12591262OPENCLAW_UPDATE_POST_CORE_CONVERGENCE: "1",
12601263},
12611264});
126212651263-expect(mocks.installPluginFromClawHub).not.toHaveBeenCalled();
1264-expectRecordFields(mockCallArg(mocks.installPluginFromNpmSpec), {
1265-spec: expectedNpmInstallSpec("@openclaw/whatsapp"),
1266-npmDir: npmRoot,
1266+expectRecordFields(mockCallArg(mocks.installPluginFromClawHub), {
1267+spec: "clawhub:@openclaw/whatsapp",
1268+env: {
1269+OPENCLAW_COMPATIBILITY_HOST_VERSION: "2026.5.19",
1270+OPENCLAW_UPDATE_POST_CORE_CONVERGENCE: "1",
1271+},
12671272mode: "install",
12681273});
1274+expect(mocks.installPluginFromNpmSpec).not.toHaveBeenCalled();
12691275expect(result.warnings).toEqual([]);
1270-expect(result.records.whatsapp?.installPath).toBe(packageDir);
1276+expectRecordFields(result.records.whatsapp, {
1277+source: "clawhub",
1278+spec: "clawhub:@openclaw/whatsapp",
1279+installPath: "/tmp/openclaw-plugins/whatsapp",
1280+clawhubPackage: "@openclaw/whatsapp",
1281+});
12711282});
1272128312731284it("repairs missing external payload during post-core convergence even with OPENCLAW_UPDATE_IN_PROGRESS=1", async () => {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。