fix: chat memory extraction crashes on a non-dict message (#1749)

This commit is contained in:
Afonso Coutinho
2026-06-03 05:25:48 +01:00
committed by GitHub
parent a714915afe
commit 51857c9008
2 changed files with 17 additions and 0 deletions

View File

@@ -51,6 +51,8 @@ class MemoryManager:
memories = []
for msg in chat_history:
if not isinstance(msg, dict):
continue
if msg.get("role") == "assistant":
content = str(msg.get("content", ""))
lines = content.split('\n')

View File

@@ -0,0 +1,15 @@
from src.memory import MemoryManager
def test_extract_memory_from_chat_skips_non_dict_messages(tmp_path):
# chat_history rows can be malformed (a non-dict slipping in from a partial
# session blob); the old loop did msg.get(...) and crashed on the first one.
m = MemoryManager(str(tmp_path))
history = [
{"role": "assistant", "content": "- remember to buy milk"},
"junk-msg",
None,
{"role": "user", "content": "hi"},
]
out = m.extract_memory_from_chat(history)
assert any(e["text"] == "remember to buy milk" for e in out)