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 c95be90d313..32125e557a1 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 @@ -18,6 +18,19 @@ const createEmbeddingProviderMock = vi.hoisted(() => providerUnavailableReason: "No embeddings provider available.", })), ); +const originalFtsOnlyStateDir = process.env.OPENCLAW_STATE_DIR; + +function setFtsOnlyStateDir(stateDir: string): void { + Reflect.set(process.env, "OPENCLAW_STATE_DIR", stateDir); +} + +function restoreFtsOnlyStateDir(): void { + if (originalFtsOnlyStateDir === undefined) { + Reflect.deleteProperty(process.env, "OPENCLAW_STATE_DIR"); + } else { + Reflect.set(process.env, "OPENCLAW_STATE_DIR", originalFtsOnlyStateDir); + } +} vi.mock("./embeddings.js", () => ({ createEmbeddingProvider: createEmbeddingProviderMock, @@ -44,7 +57,7 @@ describe("memory manager FTS-only reindex", () => { workspaceDir = path.join(fixtureRoot, `case-${caseId++}`); await fs.mkdir(path.join(workspaceDir, "memory"), { recursive: true }); await fs.writeFile(path.join(workspaceDir, "MEMORY.md"), "Alpha topic\n\nKeep this note."); - vi.stubEnv("OPENCLAW_STATE_DIR", path.join(workspaceDir, "state")); + setFtsOnlyStateDir(path.join(workspaceDir, "state")); indexPath = resolveOpenClawAgentSqlitePath({ agentId: "main" }); }); @@ -54,7 +67,7 @@ describe("memory manager FTS-only reindex", () => { manager = null; } await closeAllMemorySearchManagers(); - vi.unstubAllEnvs(); + restoreFtsOnlyStateDir(); }); afterAll(async () => { diff --git a/extensions/memory-core/src/memory/manager.reindex-recovery.test.ts b/extensions/memory-core/src/memory/manager.reindex-recovery.test.ts index 82165601212..1417c8bfc78 100644 --- a/extensions/memory-core/src/memory/manager.reindex-recovery.test.ts +++ b/extensions/memory-core/src/memory/manager.reindex-recovery.test.ts @@ -13,6 +13,19 @@ import type { MemoryIndexMeta } from "./manager-reindex-state.js"; type SessionDeltaState = { lastSize: number; pendingBytes: number; pendingMessages: number }; type SyncSessionParams = { needsFullReindex: boolean; targetSessionFiles?: string[] }; +const originalReindexStateDir = process.env.OPENCLAW_STATE_DIR; + +function setReindexStateDir(stateDir: string): void { + Reflect.set(process.env, "OPENCLAW_STATE_DIR", stateDir); +} + +function restoreReindexStateDir(): void { + if (originalReindexStateDir === undefined) { + Reflect.deleteProperty(process.env, "OPENCLAW_STATE_DIR"); + } else { + Reflect.set(process.env, "OPENCLAW_STATE_DIR", originalReindexStateDir); + } +} type ReindexHarness = { sync: (params: { reason?: string; force?: boolean }) => Promise; @@ -42,11 +55,11 @@ describe("memory manager reindex recovery", () => { workspaceDir = path.join(fixtureRoot, "workspace"); memoryDir = path.join(workspaceDir, "memory"); await fs.mkdir(memoryDir, { recursive: true }); - vi.stubEnv("OPENCLAW_STATE_DIR", path.join(fixtureRoot, "state")); + setReindexStateDir(path.join(fixtureRoot, "state")); }); afterEach(async () => { - vi.unstubAllEnvs(); + restoreReindexStateDir(); vi.restoreAllMocks(); if (manager) { await manager.close();