fix: mirror sqlite-vec for bundled memory runtime · openclaw/openclaw@4329cee
steipete
·
2026-04-30
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -33,6 +33,7 @@ Docs: https://docs.openclaw.ai
|
33 | 33 | |
34 | 34 | - Plugins/tokenjuice: compile the bundled plugin against tokenjuice 0.7.0's published OpenClaw host types instead of a local compatibility shim, so package contract drift fails in OpenClaw validation before release. Thanks @vincentkoc. |
35 | 35 | - OAuth/secrets: ignore root-level Google OAuth `client_secret_*.json` downloads so local client-secret files do not appear as commit candidates. (#74689) Thanks @jeongdulee. |
| 36 | +- Memory: mirror `sqlite-vec` into packaged bundled-plugin runtime deps for the default memory plugin, so builtin vector search does not lose its SQLite extension after upgrading to 2026.4.27. Fixes #74692. Thanks @mozi1924. |
36 | 37 | - CLI/status: resolve read-only channel setup runtime fallback from the packaged OpenClaw dist root, so `status --all`, `status --deep`, channel, and doctor paths do not crash when an external channel plugin needs setup metadata. Fixes #74693. Thanks @giangthb. |
37 | 38 | - Google Meet: block managed Chrome intro/test speech until browser health proves the participant is in-call, and expose `speechReady` diagnostics so login, admission, permission, and audio-bridge blockers no longer look like successful speech. Refs #72478. Thanks @DougButdorf. |
38 | 39 | - Slack/commands: keep native command argument menus on select controls for encoded choice values up to Slack's option limit and truncate fallback button labels to Slack's button-text limit, so long valid choices no longer render invalid Slack blocks. Thanks @slackapi. |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -1754,6 +1754,7 @@
|
1754 | 1754 | "markdown-it", |
1755 | 1755 | "openai", |
1756 | 1756 | "semver", |
| 1757 | +"sqlite-vec", |
1757 | 1758 | "tar", |
1758 | 1759 | "tslog", |
1759 | 1760 | "typebox", |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -3198,6 +3198,50 @@ describe("ensureBundledPluginRuntimeDeps", () => {
|
3198 | 3198 | expect(installRoot).not.toBe(pluginRoot); |
3199 | 3199 | }); |
3200 | 3200 | |
| 3201 | +it("mirrors sqlite-vec into the packaged default memory runtime deps", () => { |
| 3202 | +const packageRoot = makeTempDir(); |
| 3203 | +fs.writeFileSync( |
| 3204 | +path.join(packageRoot, "package.json"), |
| 3205 | +JSON.stringify({ |
| 3206 | +name: "openclaw", |
| 3207 | +version: "2026.4.27", |
| 3208 | +dependencies: { |
| 3209 | +"sqlite-vec": "0.1.9", |
| 3210 | +}, |
| 3211 | +openclaw: { |
| 3212 | +bundle: { |
| 3213 | +mirroredRootRuntimeDependencies: ["sqlite-vec"], |
| 3214 | +}, |
| 3215 | +}, |
| 3216 | +}), |
| 3217 | +); |
| 3218 | +const pluginRoot = writeBundledPluginPackage({ |
| 3219 | + packageRoot, |
| 3220 | +pluginId: "memory-core", |
| 3221 | +deps: { chokidar: "^5.0.0", typebox: "1.1.34" }, |
| 3222 | +}); |
| 3223 | +const calls: BundledRuntimeDepsInstallParams[] = []; |
| 3224 | + |
| 3225 | +const result = ensureBundledPluginRuntimeDeps({ |
| 3226 | +env: {}, |
| 3227 | +config: {}, |
| 3228 | +installDeps: (params) => { |
| 3229 | +calls.push(params); |
| 3230 | +}, |
| 3231 | +pluginId: "memory-core", |
| 3232 | + pluginRoot, |
| 3233 | +}); |
| 3234 | + |
| 3235 | +expect(result).toEqual({ |
| 3236 | +installedSpecs: ["chokidar@^5.0.0", "sqlite-vec@0.1.9", "typebox@1.1.34"], |
| 3237 | +}); |
| 3238 | +expect(calls[0]?.installSpecs).toEqual([ |
| 3239 | +"chokidar@^5.0.0", |
| 3240 | +"sqlite-vec@0.1.9", |
| 3241 | +"typebox@1.1.34", |
| 3242 | +]); |
| 3243 | +}); |
| 3244 | + |
3201 | 3245 | it("repairs external staged deps even when packaged plugin-local deps are present", () => { |
3202 | 3246 | const packageRoot = makeTempDir(); |
3203 | 3247 | const extensionsRoot = path.join(packageRoot, "dist", "extensions"); |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。