Highlights
Incremental memory consolidation (#985, closes #983, contributed by @filhocf)
New time_horizon="incremental" mode for memory_consolidate that processes only memories created since the last consolidation run — safe to invoke from session Stop hooks without blocking the agent.
- DB-based atomic lock (
BEGIN IMMEDIATE+lockedcolumn) — multi-process safe - 10-second timeout enforced via
asyncio.wait_forat the handler level - Skips decay and forgetting phases (those stay on monthly/yearly horizons); runs clustering, compression, and association discovery on the incremental window
- Bootstraps with a 24-hour window on first run, then advances
created_at > last_run_at - New
consolidation/run_tracker.pymodule + 15 unit tests - Relates to RFC #732
Other changes
Fixed
GET /api/quality/trendsAttributeError on all backends (#982, reported by @TonbiLX): the endpoint was calling two non-existent storage methods (recall_by_timeframe,search_all_memories) and returned HTTP 500 on every backend. Fixed by usingget_memories_by_time_rangewith a DB-side BETWEEN filter.
Documentation
docs/research/contradiction-resolution-approaches.md(#984, contributed by @rudi193-cmd / Sean Campbell): system-neutral comparison of invalidation models, detection mechanisms, and decision guide for RFC #732 implementors.
Maintenance
- Binaries migrated to Git LFS; generated statistics removed from version control
- Stale archive directories cleaned up
- Dead documentation links removed
Known followup
- #986 — on
incrementaltimeout,last_run_atis not advanced; same window can be retried on next run. Two fix shapes outlined in the issue; not blocking for typical usage.
Install / Upgrade
pip install -U mcp-memory-service==10.64.0Docker images published to ghcr.io/doobidoo/mcp-memory-service:10.64.0 and Docker Hub.
Full changelog: https://github.com/doobidoo/mcp-memory-service/blob/main/CHANGELOG.md