fix(memory): set updated_at on creation and preserve pre-existing created_at (#4499)

Co-authored-by: utkarsh240799 <utkarsh240799@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Utkarsh
2026-03-27 16:59:44 +05:30
committed by GitHub
co-authored by utkarsh240799 Claude Opus 4.6
parent e8004b93db
commit 12624555b4
2 changed files with 155 additions and 2 deletions
+8 -2
View File
@@ -1200,7 +1200,9 @@ class Memory(MemoryBase):
new_metadata = deepcopy(metadata) if metadata is not None else {}
new_metadata["data"] = data
new_metadata["hash"] = hashlib.md5(data.encode()).hexdigest()
new_metadata["created_at"] = datetime.now(timezone.utc).isoformat()
if "created_at" not in new_metadata:
new_metadata["created_at"] = datetime.now(timezone.utc).isoformat()
new_metadata["updated_at"] = new_metadata["created_at"]
self.vector_store.insert(
vectors=[embeddings],
@@ -1213,6 +1215,7 @@ class Memory(MemoryBase):
data,
"ADD",
created_at=new_metadata.get("created_at"),
updated_at=new_metadata.get("updated_at"),
actor_id=new_metadata.get("actor_id"),
role=new_metadata.get("role"),
)
@@ -2329,7 +2332,9 @@ class AsyncMemory(MemoryBase):
new_metadata = deepcopy(metadata) if metadata is not None else {}
new_metadata["data"] = data
new_metadata["hash"] = hashlib.md5(data.encode()).hexdigest()
new_metadata["created_at"] = datetime.now(timezone.utc).isoformat()
if "created_at" not in new_metadata:
new_metadata["created_at"] = datetime.now(timezone.utc).isoformat()
new_metadata["updated_at"] = new_metadata["created_at"]
await asyncio.to_thread(
self.vector_store.insert,
@@ -2345,6 +2350,7 @@ class AsyncMemory(MemoryBase):
data,
"ADD",
created_at=new_metadata.get("created_at"),
updated_at=new_metadata.get("updated_at"),
actor_id=new_metadata.get("actor_id"),
role=new_metadata.get("role"),
)