fix(memory): first-person rescue, cap 3->6, semantic dedup - #6
Conversation
update_memory tool hardening, mirroring the web-app auto-memory fixes:
- _normalize_first_person rescues first-person facts ("I'm the CFO" ->
"User is the CFO") before the assistant-voice shape filter, instead of the
filter silently dropping them. Mirror of the TS normalizeFirstPerson.
- _MAX_APPEND_BULLETS 3 -> 6 (the char ceiling is the real bound; a tight cap
truncated multi-fact turns).
- _semantic_novel_bullets: fail-open dedup pass (MEMORY_SEMANTIC_DEDUP=0 to
disable) drops paraphrases the lexical key misses, on the append path.
Validator parity with the web app is pinned by golden-case suites in both
languages (hermes/tests/test_output_contracts.py + agent-memory-helpers.test.ts).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
6b362d2 to
ba956ea
Compare
Code review — approve; merge as-is, no rebase needed ✅Despite being 17 days old and 10 commits behind main, the branch is MERGEABLE/CLEAN and semantically coherent: the only post-branch change to the same file on main ( Merging this also fixes a standing mystery: the baseline failure Findings (real, but faithful mirrors of already-shipped web-app behavior — follow-up in BOTH repos, not blockers here)
Recommendation: merge (merge-commit), bump the hermes submodule pin, and track findings 1-3 as a cross-repo follow-up issue covering both this file and 🤖 Generated with Claude Code |
Reopened + re-verified after sync with main ✅Merged current main (post #10/#11) into the branch: zero conflicts (5e07b35). Post-merge verification:
Original review verdict stands (approve, merge as merge commit); the two medium findings remain deliberately deferred to the cross-repo follow-up KNOWIDEA-Tech/hermes#103 since the web app ships identical behavior in production. After merging: hermes needs one more submodule pin bump to pick this up (the pin currently at 414da8a predates it). 🤖 Generated with Claude Code |
update_memorytool hardening, mirroring the web-app auto-memory fixes (knowidea-web-app NousResearch#468) and paired with hermes NousResearch#72 (which bumps the submodule pointer to this commit)._normalize_first_personrescues first-person facts ("I'm the CFO" → "User is the CFO") before the assistant-voice shape filter, instead of the filter silently dropping them. Mirror of the TSnormalizeFirstPerson._MAX_APPEND_BULLETS3 → 6 — the char ceiling is the real bound; a tight cap truncated multi-fact turns._semantic_novel_bullets— fail-open dedup pass (MEMORY_SEMANTIC_DEDUP=0to disable) that drops paraphrases the lexical key misses, on the append path.Validator parity with the web app is pinned by golden-case suites in both languages (
hermes/tests/test_output_contracts.py+agent-memory-helpers.test.ts).🤖 Generated with Claude Code