From ed7d83bcfc7ff0b1abd139ec035af577468a9190 Mon Sep 17 00:00:00 2001 From: Vignesh Natarajan Date: Sat, 14 Feb 2026 18:20:48 -0800 Subject: [PATCH] fix (memory/lancedb): require explicit opt-in for auto-capture --- extensions/memory-lancedb/config.ts | 2 +- extensions/memory-lancedb/index.test.ts | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/extensions/memory-lancedb/config.ts b/extensions/memory-lancedb/config.ts index 339e5c8cd7..77d53cc684 100644 --- a/extensions/memory-lancedb/config.ts +++ b/extensions/memory-lancedb/config.ts @@ -121,7 +121,7 @@ export const memoryConfigSchema = { apiKey: resolveEnvVars(embedding.apiKey), }, dbPath: typeof cfg.dbPath === "string" ? cfg.dbPath : DEFAULT_DB_PATH, - autoCapture: cfg.autoCapture !== false, + autoCapture: cfg.autoCapture === true, autoRecall: cfg.autoRecall !== false, captureMaxChars: captureMaxChars ?? DEFAULT_CAPTURE_MAX_CHARS, }; diff --git a/extensions/memory-lancedb/index.test.ts b/extensions/memory-lancedb/index.test.ts index 67241b1ddb..4ab80117c3 100644 --- a/extensions/memory-lancedb/index.test.ts +++ b/extensions/memory-lancedb/index.test.ts @@ -120,6 +120,21 @@ describe("memory plugin e2e", () => { expect(config?.captureMaxChars).toBe(1800); }); + test("config schema keeps autoCapture disabled by default", async () => { + const { default: memoryPlugin } = await import("./index.js"); + + const config = memoryPlugin.configSchema?.parse?.({ + embedding: { + apiKey: OPENAI_API_KEY, + model: "text-embedding-3-small", + }, + dbPath, + }); + + expect(config?.autoCapture).toBe(false); + expect(config?.autoRecall).toBe(true); + }); + test("shouldCapture applies real capture rules", async () => { const { shouldCapture } = await import("./index.js");