mirror of
https://github.com/bytedance/deer-flow.git
synced 2026-10-26 21:26:39 +00:00
* fix(memory): parse a BOM-prefixed DeerMem fact instead of calling it corruption Facts are hand-editable Markdown files, so a Windows editor can save one as "UTF-8 with BOM" -- the same exposure #7083 fixed for memory.json. The fact parser checks `text.startswith("---\n")` against a plain-utf-8 read, so the BOM makes a valid fact read as "missing YAML front matter" and raises MemoryStorageCorruption, which the module docs describe as taking down the whole agent. Read the fact with utf-8-sig, matching the summary loader and the SOUL.md / SKILL.md convention already recorded in AGENTS.md. `_parse_listed_fact` delegates here, so the directory-scan path is covered by the same change. Measured: the new BOM test fails on the base revision with exactly that "missing YAML front matter" corruption and passes at head; the no-BOM control passes both. 49 tests in test_memory_storage.py, 106 across the memory suites, ruff check/format clean. Mutation-checked: reverting to plain utf-8 fails only the BOM case. * test(memory): cover BOM facts through the public storage API --------- Co-authored-by: Willem Jiang <willem.jiang@gmail.com>