From 31e2276fe96644fdaf7890187fdb962a418e4dac Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Sun, 3 May 2026 01:57:36 -0700 Subject: [PATCH] fix(memory): load unconfigured lancedb metadata --- CHANGELOG.md | 1 + extensions/memory-lancedb/config.test.ts | 13 +++++++++++++ extensions/memory-lancedb/openclaw.plugin.json | 3 +-- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f0cf4a42a2c..7d02aca5d79 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,7 @@ Docs: https://docs.openclaw.ai - Channels/onboarding: map third-party official WeCom and Yuanbao catalog entries to their published plugin ids so npm installs pass expected-plugin validation. Thanks @vincentkoc. - Plugin SDK: restore the Mattermost and Matrix compatibility subpaths used by the pinned Yuanbao channel package so external installs can module-load after npm install. Thanks @vincentkoc. - Plugins/install: keep managed npm-root security scans from treating earlier plugin `openclaw` peer links as failures, so one external plugin install cannot poison later official npm installs. Thanks @vincentkoc. +- Memory LanceDB: allow installed-but-unconfigured plugin metadata to load so onboarding and setup flows can prompt for embedding config instead of failing the plugin registry first. Thanks @vincentkoc. - CLI/plugins: keep `plugins enable` and `plugins disable` from creating unconfigured channel config sections, so channel plugins with required setup fields no longer fail validation during lifecycle probes. Thanks @vincentkoc. - Agents/sessions: keep delayed `sessions_send` A2A replies alive after soft wait-window timeouts, while preserving terminal run timeouts and avoiding stale target replies in requester sessions. Fixes #76443. Thanks @ryswork1993 and @vincentkoc. - CLI/sessions: keep intentional empty agent replies silent after tool-delivered channel output, instead of surfacing a misleading "No reply from agent." fallback. Thanks @vincentkoc. diff --git a/extensions/memory-lancedb/config.test.ts b/extensions/memory-lancedb/config.test.ts index 8c4f007f1bd..deac1469632 100644 --- a/extensions/memory-lancedb/config.test.ts +++ b/extensions/memory-lancedb/config.test.ts @@ -84,6 +84,19 @@ describe("memory-lancedb config", () => { }).toThrow("embedding config must include at least one setting"); }); + it("allows missing embedding config in the manifest so setup can discover fields", () => { + const manifestResult = validateJsonSchemaValue({ + schema: manifest.configSchema, + cacheKey: "memory-lancedb.manifest.missing-embedding", + value: {}, + }); + + expect(manifestResult.ok).toBe(true); + expect(() => { + memoryConfigSchema.parse({}); + }).toThrow("embedding config required"); + }); + it("rejects empty embedding providers", () => { expect(() => { memoryConfigSchema.parse({ diff --git a/extensions/memory-lancedb/openclaw.plugin.json b/extensions/memory-lancedb/openclaw.plugin.json index 051ce1edb7b..f1723fa1793 100644 --- a/extensions/memory-lancedb/openclaw.plugin.json +++ b/extensions/memory-lancedb/openclaw.plugin.json @@ -126,7 +126,6 @@ "type": "string" } } - }, - "required": ["embedding"] + } } }