From 5cfb26b57132f4ebf8dffa328b20c7967c2ae1af Mon Sep 17 00:00:00 2001 From: Ran <16112591+chen-ran@users.noreply.github.com> Date: Wed, 11 Mar 2026 20:31:05 +0800 Subject: [PATCH] fix(memory): replace manifest.json with scan-based index Remove the manifest.json dependency for memory file tracking. Instead, build an index by scanning daily memory files on demand. This eliminates a class of bugs where the manifest could drift out of sync with actual files, and simplifies the code by removing Manifest/ManifestEntry types and all read/write/path helpers. Made-with: Cursor --- internal/handlers/memory.go | 4 +- internal/memory/storefs/service.go | 196 ++++++++++------------------- 2 files changed, 66 insertions(+), 134 deletions(-) diff --git a/internal/handlers/memory.go b/internal/handlers/memory.go index 9cdf2d8e..bfa27517 100644 --- a/internal/handlers/memory.go +++ b/internal/handlers/memory.go @@ -123,7 +123,7 @@ func (h *MemoryHandler) SetMCPClientProvider(p mcpclient.Provider) { h.memoryStore = nil return } - h.memoryStore = storefs.New(p) + h.memoryStore = storefs.New(h.logger, p) } // Register registers chat-level memory routes. @@ -631,7 +631,7 @@ func NewBuiltinMemoryRuntime(p mcpclient.Provider) any { if p == nil { return nil } - return &fileMemoryRuntime{store: storefs.New(p)} + return &fileMemoryRuntime{store: storefs.New(nil, p)} } type fileMemoryRuntime struct { diff --git a/internal/memory/storefs/service.go b/internal/memory/storefs/service.go index 488980b7..157dd136 100644 --- a/internal/memory/storefs/service.go +++ b/internal/memory/storefs/service.go @@ -4,8 +4,8 @@ import ( "context" "encoding/json" "errors" - "fmt" "io" + "log/slog" "maps" "path" "sort" @@ -17,8 +17,6 @@ import ( "github.com/memohai/memoh/internal/mcp/mcpclient" ) -const manifestVersion = 1 - const ( memoryDateLayout = "2006-01-02" entryStartPrefix = "