






















@@ -350,11 +350,78 @@ describe("config plugin validation", () => {
350350},
351351);
352352353+expect(res.ok).toBe(true);
354+const slotMessage =
355+"plugin not installed: memory-lancedb — gateway will run without persistent memory until installed; install the official external plugin with: openclaw plugins install @openclaw/memory-lancedb";
356+const entryMessage =
357+"plugin not installed: memory-lancedb — install the official external plugin with: openclaw plugins install @openclaw/memory-lancedb";
358+expectPathMessage(res.warnings, "plugins.slots.memory", slotMessage);
359+expectPathMessage(res.warnings, "plugins.entries.memory-lancedb", entryMessage);
360+});
361+362+it("keeps no-persistent-memory wording scoped to the selected missing memory slot", () => {
363+const res = validateConfigObjectWithPlugins(
364+{
365+agents: { list: [{ id: "pi" }] },
366+plugins: {
367+slots: { memory: "none" },
368+entries: { "memory-lancedb": { enabled: true } },
369+allow: ["memory-lancedb"],
370+},
371+},
372+{
373+env: suiteEnv(),
374+pluginMetadataSnapshot: {
375+manifestRegistry: {
376+plugins: [],
377+diagnostics: [],
378+},
379+},
380+},
381+);
382+353383expect(res.ok).toBe(true);
354384const message =
355385"plugin not installed: memory-lancedb — install the official external plugin with: openclaw plugins install @openclaw/memory-lancedb";
356-expectPathMessage(res.warnings, "plugins.slots.memory", message);
357386expectPathMessage(res.warnings, "plugins.entries.memory-lancedb", message);
387+expectPathMessage(res.warnings, "plugins.allow", message);
388+expect(
389+(res.warnings ?? []).some((warning) =>
390+warning.message.includes("gateway will run without persistent memory"),
391+),
392+).toBe(false);
393+});
394+395+it("keeps official external non-memory plugins fatal in the memory slot", () => {
396+const res = validateConfigObjectWithPlugins(
397+{
398+agents: { list: [{ id: "pi" }] },
399+plugins: {
400+slots: { memory: "brave" },
401+entries: { brave: { enabled: true } },
402+},
403+},
404+{
405+env: suiteEnv(),
406+pluginMetadataSnapshot: {
407+manifestRegistry: {
408+plugins: [],
409+diagnostics: [],
410+},
411+},
412+},
413+);
414+415+expect(res.ok).toBe(false);
416+if (res.ok) {
417+return;
418+}
419+expectPathMessage(res.issues, "plugins.slots.memory", "plugin not found: brave");
420+expectPathMessage(
421+res.warnings,
422+"plugins.entries.brave",
423+"plugin not installed: brave — install the official external plugin with: openclaw plugins install @openclaw/brave-plugin",
424+);
358425});
359426360427it("keeps blocked official external memory slot plugins fatal", () => {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。