What's New
Added
-
feat(reasoning): Phase 1a — transitive closure + abductive inference (#1009, RFC #732): Implements the first phase of the reasoning engine. Transitive closure walks multi-hop graph edges to surface indirect memory connections. Abductive inference proposes the most plausible explanations for observed memory patterns using NLI-backed scoring. Lays the foundation for higher-level reasoning layers in subsequent phases.
-
feat(reasoning): Phase 1b — entity grouping (#1010): Groups co-referenced entities across memories into canonical clusters, enabling cross-memory entity resolution. Entity groups feed into the transitive closure engine so that edges between aliased entities are correctly traversed.
-
feat(reasoning): Phase 3 — insight cards (#1011): Introduces insight cards — structured summaries synthesised from related memory clusters and inferred relationships. Cards surface via the REST API and memory_graph tool, giving clients a compact, human-readable view of what the reasoning engine has discovered.
Fixed
- fix(time-filter): enforce time filter at SQL level (#1014): Time-range filters (
start_date,end_date,stale_days) were previously applied in Python after retrieval, allowing the vector search to return results outside the requested window when the result set was small. Filters are now pushed down into the SQLWHEREclause so the database enforces the constraint before any vector scoring occurs.
Full changelog: https://github.com/doobidoo/mcp-memory-service/blob/main/CHANGELOG.md#10660---2026-05-26