From 0b7c94a5e109a018d9fc9f15835d4233b6daafcd Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Tue, 2 Jun 2026 14:22:43 +0200 Subject: [PATCH] fix(memory): initialize provider-none lifecycle during sync --- .../memory-core/src/memory/manager.fts-only-reindex.test.ts | 5 +++++ extensions/memory-core/src/memory/manager.ts | 6 ++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/extensions/memory-core/src/memory/manager.fts-only-reindex.test.ts b/extensions/memory-core/src/memory/manager.fts-only-reindex.test.ts index 69616b144b0d..c7d6c3cb30b6 100644 --- a/extensions/memory-core/src/memory/manager.fts-only-reindex.test.ts +++ b/extensions/memory-core/src/memory/manager.fts-only-reindex.test.ts @@ -137,6 +137,11 @@ describe("memory manager FTS-only reindex", () => { expect(createEmbeddingProviderMock).not.toHaveBeenCalled(); expect(countChunksContaining("Alpha topic")).toBeGreaterThan(0); expect(memoryManager.status().custom?.indexIdentity).toEqual({ status: "valid" }); + expect(memoryManager.status().custom?.providerState).toEqual({ + mode: "fts-only", + reason: "No embedding provider available (FTS-only mode)", + attemptedProviderId: "none", + }); }); it("reports explicit provider-none probes as FTS-only without resolving providers", async () => { diff --git a/extensions/memory-core/src/memory/manager.ts b/extensions/memory-core/src/memory/manager.ts index 63a12dc11be4..27d96ea5a453 100644 --- a/extensions/memory-core/src/memory/manager.ts +++ b/extensions/memory-core/src/memory/manager.ts @@ -464,7 +464,7 @@ export class MemoryIndexManager extends MemoryManagerEmbeddingOps implements Mem log.warn(`memory sync failed (search): ${String(err)}`); }, }); - if (preflight.shouldInitializeProvider && this.settings.provider !== "none") { + if (preflight.shouldInitializeProvider) { await this.ensureProviderInitialized(); } if (!this.provider && this.providerLifecycle.mode === "degraded") { @@ -802,9 +802,7 @@ export class MemoryIndexManager extends MemoryManagerEmbeddingOps implements Mem return this.syncing; } this.syncing = (async () => { - if (this.settings.provider !== "none") { - await this.ensureProviderInitialized(); - } + await this.ensureProviderInitialized(); await this.runSyncWithReadonlyRecovery(params); })().finally(() => { this.syncing = null;