{"repo":"NousResearch/hermes-agent","public_id":"107270","display_label":"Memory tool false drift detection and refusal fixes","summary":"These issues and fixes address the memory tool incorrectly refusing write operations by misidentifying file drift, including cases where MEMORY.md matches its backup exactly or differs only in formatting. The work involves bounding refusal behavior and reducing spurious backup file clutter.","subsystem":null,"counts":{"members":4,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":2},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":133038,"merged_at":"2026-10-05T22:36:46+00:00"},"resolution":{"state":"resolved","by":"pr-133038"},"freshness":{"state":"verified","last_verified_at":"2026-10-05T22:36:46+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.5},"fix_edges":[{"issue_number":90468,"pr_number":133038,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-10-05T22:36:46+00:00"},{"issue_number":107270,"pr_number":133038,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-10-05T22:36:46+00:00"}],"members":[{"kind":"issue","number":107270,"title":"memory tool falsely refuses writes: reports file drift when MEMORY.md matches its backup byte-for-byte","url":null,"state":"closed"},{"kind":"pr","number":107278,"title":"fix(memory): ignore format-only MEMORY.md drift on replace","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"b9013584b2","number":0},{"kind":"pr","value":"#133038","number":133038},{"kind":"pr","value":"#107270","number":107270}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":107280,"title":"fix(memory): bound the external-drift refusal and stop duplicate .bak clutter (#107270)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#107278","number":107278},{"kind":"pr","value":"#107270","number":107270}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":133038,"title":"Memory writes stop failing on hand-formatted files, and refused writes say exactly what to fix (#107270, #90468)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["tests/agent/test_learning_mutations.py","tests/tools/test_memory_tool.py","tools/memory_tool.py","tools/memory_tool_store.py","website/docs/user-guide/features/memory.md"]}],"trust":{"default_tier":"verified","includes_suggested":false}}