diff --git a/src/memory/manager.ts b/src/memory/manager.ts index 61e2cd71af8..436e1362395 100644 --- a/src/memory/manager.ts +++ b/src/memory/manager.ts @@ -42,22 +42,6 @@ const log = createSubsystemLogger("memory"); const INDEX_CACHE = new Map(); const INDEX_CACHE_PENDING = new Map>(); -export async function closeAllMemoryIndexManagers(): Promise { - const pending = Array.from(INDEX_CACHE_PENDING.values()); - if (pending.length > 0) { - await Promise.allSettled(pending); - } - const managers = Array.from(INDEX_CACHE.values()); - INDEX_CACHE.clear(); - for (const manager of managers) { - try { - await manager.close(); - } catch (err) { - log.warn(`failed to close memory index manager: ${String(err)}`); - } - } -} - export class MemoryIndexManager extends MemoryManagerEmbeddingOps implements MemorySearchManager { private readonly cacheKey: string; protected readonly cfg: OpenClawConfig; @@ -125,8 +109,6 @@ export class MemoryIndexManager extends MemoryManagerEmbeddingOps implements Mem >(); private sessionWarm = new Set(); private syncing: Promise | null = null; - private queuedSessionFiles = new Set(); - private queuedSessionSync: Promise | null = null; private readonlyRecoveryAttempts = 0; private readonlyRecoverySuccesses = 0; private readonlyRecoveryFailures = 0; @@ -157,9 +139,9 @@ export class MemoryIndexManager extends MemoryManagerEmbeddingOps implements Mem config: cfg, agentDir: resolveAgentDir(cfg, agentId), provider: settings.provider, + outputDimensionality: settings.outputDimensionality, remote: settings.remote, model: settings.model, - outputDimensionality: settings.outputDimensionality, fallback: settings.fallback, local: settings.local, }); @@ -454,16 +436,12 @@ export class MemoryIndexManager extends MemoryManagerEmbeddingOps implements Mem async sync(params?: { reason?: string; force?: boolean; - sessionFiles?: string[]; progress?: (update: MemorySyncProgressUpdate) => void; }): Promise { if (this.closed) { return; } if (this.syncing) { - if (params?.sessionFiles?.some((sessionFile) => sessionFile.trim().length > 0)) { - return this.enqueueTargetedSessionSync(params.sessionFiles); - } return this.syncing; } this.syncing = this.runSyncWithReadonlyRecovery(params).finally(() => { @@ -472,36 +450,6 @@ export class MemoryIndexManager extends MemoryManagerEmbeddingOps implements Mem return this.syncing ?? Promise.resolve(); } - private enqueueTargetedSessionSync(sessionFiles?: string[]): Promise { - for (const sessionFile of sessionFiles ?? []) { - const trimmed = sessionFile.trim(); - if (trimmed) { - this.queuedSessionFiles.add(trimmed); - } - } - if (this.queuedSessionFiles.size === 0) { - return this.syncing ?? Promise.resolve(); - } - if (!this.queuedSessionSync) { - this.queuedSessionSync = (async () => { - try { - await this.syncing?.catch(() => undefined); - while (!this.closed && this.queuedSessionFiles.size > 0) { - const queuedSessionFiles = Array.from(this.queuedSessionFiles); - this.queuedSessionFiles.clear(); - await this.sync({ - reason: "queued-session-files", - sessionFiles: queuedSessionFiles, - }); - } - } finally { - this.queuedSessionSync = null; - } - })(); - } - return this.queuedSessionSync; - } - private isReadonlyDbError(err: unknown): boolean { const readonlyPattern = /attempt to write a readonly database|database is read-only|SQLITE_READONLY/i; @@ -554,7 +502,6 @@ export class MemoryIndexManager extends MemoryManagerEmbeddingOps implements Mem private async runSyncWithReadonlyRecovery(params?: { reason?: string; force?: boolean; - sessionFiles?: string[]; progress?: (update: MemorySyncProgressUpdate) => void; }): Promise { try {