v4.0.1
v4.0.1은 recall 정확도 보정 patch 릴리즈다. 외부 API·DB 스키마 호환. 외부 호출자 응답 구조 무변경.
Changed
lib/memory/read/FragmentSearch.js_executeSearch:- Cross-encoder Reranker 호출 시
topic: <topic> keywords: <keywords> text: <text>형식의 query를 전달하여 정확 매칭 신호가 재정렬 단계까지 보존된다. l1MissIds를l1IsFallback에 따라 빈 배열로 강제. fallback fragment가_searchL2.getByIds로 추가 조회되어 결과에 섞이는 경로를 차단.- RRF의 L1 layer 가중치를
l1IsFallback ? 0.5 : MEMORY_CONFIG.rrfSearch.l1WeightFactor로 분기. fallback 경로의 L1 결과 가중을 강등.
- Cross-encoder Reranker 호출 시
config/memory.jssemanticSearch.minSimilarity0.35 → 0.5.lib/memory/embedding/EmbeddingCache._key캐시 키에EMBEDDING_MODELprefix 결합. 모델 변경 시 stale 벡터 hit 방지.lib/memory/assistant-query.jsboostAssistantFragments기본 boost 0.05 → 0.02.
Added
MEMENTO_RECALL_MIN_SIM_FLOOR환경변수.SearchParamAdaptor.getMinSimilarity가 반환하는 적응형 임계값에 옵트인 하한을 강제한다. 미설정 시 기존 동작 그대로.
Tests
tests/unit/fragment-search-fallback-guard.test.js신설. 정적 가드 3건 + 동적 가드 2건.- 영향권 단위 테스트 114건 회귀 0.
Docs
CHANGELOG.md,SKILL.md,docs/configuration.md/.en.md,docs/features.md정합.
호환성
- 외부 호출자
search/recall/remember응답 구조 무변경. _searchEventId동기 반환 계약 유지.- DB 스키마 무변경. 마이그레이션 불필요.
- 운영 반영 시 systemd 재시작만 필요.
후속
- v4.1:
SqliteVecStore본격 구현, 저장 임베딩 텍스트에 keywords·topic prefix 결합(시그니처 확장 + 마이그레이션), expandAssistantQuery 활성 조건 좁히기 + 원본·확장 쿼리 Reranker 점수 앙상블, Reranker recencyBoost /_applyMMRlambda 검토.
상세: https://github.com/JinHo-von-Choi/memento-mcp/blob/main/CHANGELOG.md