# NousResearch/hermes-agent · Memory replace ambiguity causing duplicate entries on fallback add

## Open now

- 1 issue, 1 PR open on GitHub.
- #60089: \[Bug\]: memory replace → "Multiple entries matched" → fallback add creates duplicate entries with no signal
- PR #71819: fix(memory): disambiguate replace when new_content already exists

These members concern the memory replace operation: when a replace matches multiple entries, a fallback add can create duplicate entries without any signal. One issue reports the problem, and the pull requests propose detecting existing or duplicate new content during ambiguous replace, or improving the resulting error.

## TL;DR

- 10 member(s): 1 open issue(s), 0 closed issue(s), 1 open PR(s), 0 merged PR(s), 8 PR(s) closed without merging.
- No fix has been merged to main; one or more PRs were attempted (see below).
- **Recommended:** review the prior/competing PR(s) below. A fix was attempted but not merged; your case may extend or revive that work.

## Maintainer resolution verdict

- Internal-tracker verdict over this cluster's issue members: `unresolved`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_SPANNING`): every member is connected by structural evidence: shared changed files, or a closing/superseded reference.
- Pairwise link density `0.20`: the share of member pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. `1.00` means every pair is linked.

## Open related issues

- #60089: \[Bug\]: memory replace → "Multiple entries matched" → fallback add creates duplicate entries with no signal

## Prior & competing PRs

- **#60090: fix(memory): guard against duplicate-entry trap on ambiguous replace**. closed without merge · fix tier `suggested`
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `#60089`
  - _suggested-tier fix detail withheld; re-request with `?tier=all` to include it._
- **#60093: fix(memory): detect duplicate new_content in ambiguous replace (#60089)**. closed without merge
  - maintainer direction: category `stale_abandoned`; implication `active`
- **#60147: fix(memory): detect duplicate new_content in ambiguous replace (#60089)**. closed without merge
  - maintainer direction: category `stale_abandoned`; implication `active`
- **#60208: fix(memory): check for existing content on ambiguous replace to prevent duplicate add (#60089)**. closed without merge
  - maintainer direction: category `duplicate_of`; implication `duplicate`; refs `#60090`, `#60093`, `#60147`, `#60089`
- **#60216: fix(memory): detect duplicate content in ambiguous replace errors (#60089)**. closed without merge
  - maintainer direction: category `stale_abandoned`; implication `active`
- **#60321: fix(memory): guard against duplicate-entry trap on ambiguous replace**. closed without merge
  - maintainer direction: category `duplicate_of`; implication `duplicate`; refs `#60090`, `#60089`, `#60093`, `#60147`, `#60208`, `#60216`
- **#60511: fix(memory): better error when replace() content already exists verbatim (#60089)**. closed without merge
  - maintainer direction: category `stale_abandoned`; implication `active`
- **#66916: fix(memory): detect existing-duplicate in ambiguous replace to break silent duplicate loop (#60089)**. closed without merge
  - maintainer direction: category `duplicate_of`; implication `duplicate`; refs `#60208`
- **#71819: fix(memory): disambiguate replace when new_content already exists**. open
  - maintainer direction: category `partial_fix`; implication `needs_llm`; refs `1556abe5453c`, `#60089`, `#60147`, `#66916`, `#71819`, `#60090`, `#60093`, `#60208`, `#60216`, `#60321`, `#60511`, `#374151`
  - files: `tests/tools/test_memory_tool.py`, `tools/memory_tool_store.py`

## Fix status

- No merged fix on record.
- Subsystem: `agent`
