fix(memory): validate save_memory payload before persisting

This commit is contained in:
shenchengtsi
2026-03-10 11:32:11 +08:00
parent 99b896f5d4
commit b24d6ffc94
2 changed files with 116 additions and 11 deletions
+24 -9
View File
@@ -139,15 +139,30 @@ class MemoryStore:
logger.warning("Memory consolidation: unexpected arguments type {}", type(args).__name__)
return False
if entry := args.get("history_entry"):
if not isinstance(entry, str):
entry = json.dumps(entry, ensure_ascii=False)
self.append_history(entry)
if update := args.get("memory_update"):
if not isinstance(update, str):
update = json.dumps(update, ensure_ascii=False)
if update != current_memory:
self.write_long_term(update)
if "history_entry" not in args or "memory_update" not in args:
logger.warning("Memory consolidation: save_memory payload missing required fields")
return False
entry = args["history_entry"]
update = args["memory_update"]
if entry is None or update is None:
logger.warning("Memory consolidation: save_memory payload contains null required fields")
return False
if not isinstance(entry, str):
entry = json.dumps(entry, ensure_ascii=False)
if not isinstance(update, str):
update = json.dumps(update, ensure_ascii=False)
entry = entry.strip()
if not entry:
logger.warning("Memory consolidation: history_entry is empty after normalization")
return False
self.append_history(entry)
if update != current_memory:
self.write_long_term(update)
session.last_consolidated = 0 if archive_all else len(session.messages) - keep_count
logger.info("Memory consolidation done: {} messages, last_consolidated={}", len(session.messages), session.last_consolidated)