* fix: env hydration, indexing, consolidation, connectors, hardening
- config: hydrate ~/.agentmemory/.env into process.env at boot so all modules see it
- search: shared indexRecords() so export-import and replay populate BM25 and vector (#1072)
- snapshot: wire the periodic timer (#1006), clamp non-positive intervals, add a reentrancy guard
- schema: CJK-aware jaccard dedup plus exact-match fallback for short memories
- embeddings: shared resolveDimensions() so openrouter stops hardcoding 1536 (#1002)
- viewer: buffer request bodies before decoding to fix multibyte corruption (#930)
- providers: retry 429/503 with Retry-After under a total-elapsed budget cap
- consolidation: fire on session stop (#1087), gate keyless installs, debounce the per-turn stop hook, drop the client-side double-fire
- evict: bound stale-session recovery to one consolidation pass
- api/patterns: bound session fan-out (#1100)
- connect: write a memory-usage guideline into each hook-less agent's native rules file (12 agents, doc-verified paths, --no-guidelines opt-out)
- graph: import graphify's graph.json via mem::graph::import-graphify + POST /agentmemory/graph/import-graphify; shared persistGraphDelta with endpoint remap so merged nodes never leave dangling or duplicate edges
- fs-watcher: stat roots before fs.watch so missing roots fail deterministically on Node 24+
- test: regression tests for every fix
* fix: address review findings on import, debounce, and connect paths
- guidelines: refuse to touch files with a lone or reversed marker pair
- export-import/replay: indexing after committed writes is best-effort,
logged instead of failing the import; flatten the nested runChunked so
replace-mode deletes stay bounded to one chunk
- graph: persist the snapshot when merge-only batches mutate cached
topNodes/topEdges entries
- graph-import: async fs, typeof validation on path/cwd; REST handler
whitelists the payload and 400s non-string values
- fetch: cancel discarded response bodies before retrying
- events: serialize the consolidation cooldown check so concurrent stops
cannot both pass the read-check-write window
- evict: gate recovered-session consolidation on isConsolidationEnabled
and mirror the stop path's force flag
- search: rebuild indexes per session chunk to bound peak memory
- test: regression coverage for each (malformed markers, concurrent
stops, snapshot persistence, AMBIGUOUS/default mappings, env isolation)
Adds docs/recipes/pairings.md walking through how agentmemory pairs with
three projects that ship the rest of the AI coding agent context layer:
- codegraph: pre-indexed code knowledge graph (MCP server)
- Understand Anything: multi-agent code-graph build + interactive dashboard
- Graphify: knowledge graph across code + docs + PDFs + images + videos
Doc includes a unified MCP config snippet, question-routing table mapping
question shapes to the right tool, install order for a new project, and
a pointer to eval/runner/adapters/ for anyone who wants to publish a
cross-project benchmark adapter.
Main README gets a one-line pointer to the recipe under the existing
benchmarks section.