From 7addb519da0071f1a783ff0843f45d516eb13060 Mon Sep 17 00:00:00 2001 From: Vignesh Natarajan Date: Sat, 14 Feb 2026 18:48:34 -0800 Subject: [PATCH] fix (memory/builtin): keep status dirty state stable across invocations --- src/memory/manager.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/memory/manager.ts b/src/memory/manager.ts index 92f1f84e95b..9f0e0c6ec97 100644 --- a/src/memory/manager.ts +++ b/src/memory/manager.ts @@ -101,6 +101,7 @@ export class MemoryIndexManager implements MemorySearchManager { static async get(params: { cfg: OpenClawConfig; agentId: string; + purpose?: "default" | "status"; }): Promise { const { cfg, agentId } = params; const settings = resolveMemorySearchConfig(cfg, agentId); @@ -129,6 +130,7 @@ export class MemoryIndexManager implements MemorySearchManager { workspaceDir, settings, providerResult, + purpose: params.purpose, }); INDEX_CACHE.set(key, manager); return manager; @@ -141,6 +143,7 @@ export class MemoryIndexManager implements MemorySearchManager { workspaceDir: string; settings: ResolvedMemorySearchConfig; providerResult: EmbeddingProviderResult; + purpose?: "default" | "status"; }) { this.cacheKey = params.cacheKey; this.cfg = params.cfg; @@ -175,7 +178,8 @@ export class MemoryIndexManager implements MemorySearchManager { this.ensureWatcher(); this.ensureSessionListener(); this.ensureIntervalSync(); - this.dirty = this.sources.has("memory"); + const statusOnly = params.purpose === "status"; + this.dirty = this.sources.has("memory") && (statusOnly ? !meta : true); this.batch = this.resolveBatchConfig(); }