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"] + } } }