feat(memory): hybrid retrieval — navigation index.md + RAG hardening
Expose a navigation layer to the agent and harden RAG, after analyzing the OKF note and testing on the real KB. - memory_search.search(): dedupe best-chunk-per-file (a relevant note can no longer be buried by another file's chunks) + keyword fallback tagged degraded:True when Ollama is unreachable (no more hard crash). - update_notes_index.py: emit per-folder index.md + root router; prune empty folders; fix latent subcategory->project bug. - Exclude generated index.md from RAG rglob (reindex/incremental) + indexer scans + heartbeat freshness check (prevents self-pollution / reindex thrash). - CLAUDE.md: reframe memory as hybrid (navigation first, RAG for fuzzy recall). - Delete stale orphan kb/youtube/index.json; correct the OKF source note. - Tests: dedup, keyword fallback, index.md exclusion. Plan + review in docs/. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -316,6 +316,10 @@ def _check_kb_index() -> str | None:
|
||||
|
||||
newer = 0
|
||||
for md in kb_dir.rglob("*.md"):
|
||||
# Skip generated nav files — they're written by the reindex itself, so
|
||||
# comparing them against index.json mtime would cause perpetual reindex.
|
||||
if md.name == "index.md":
|
||||
continue
|
||||
if md.stat().st_mtime > index_mtime:
|
||||
newer += 1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user