github doobidoo/mcp-memory-service v10.61.0
v10.61.0 — Native Milvus batch update + SSE Last-Event-ID replay

5 hours ago

What's New

feat(milvus): Native update_memory and update_memories_batch (#966)

Contributor: @henry201605 — Part of #888 (optional BaseStorage overrides for Milvus backend)

The Milvus backend now provides native overrides for two update methods:

  • update_memory — delegates to update_memory_metadata, reusing its validation, merge, and timestamp logic instead of duplicating it. Metadata is merged (not replaced), consistent with the base class contract.

  • update_memories_batch — replaces N sequential operations with 3 batch calls:

    1. Single client.get(ids=...) for all existing records
    2. Single SentenceTransformer.encode(texts) for all embeddings
    3. Single Milvus upsert for all entities

    Result: 1 round-trip instead of N — significantly lower latency for bulk update workloads.

18 mock-based unit tests cover normal/error/edge cases, batch operations, partial failures, and preserve_timestamps behavior.

feat(sse): Last-Event-ID replay on /api/events reconnect (#953)

SSE clients can now resume missed events after a transient disconnect using the standard Last-Event-ID header:

  • Bounded ring buffer of recently broadcast events (configurable via MCP_SSE_REPLAY_BUFFER_SIZE, default 1000, 0 disables)
  • Replay outcome (status: resumed or status: id_not_in_buffer) surfaced in the connection_established welcome event
  • Connection-scoped events (welcome, close) and heartbeats are not buffered; filtered broadcasts are excluded to avoid expanding the original audience on replay

Special Thanks

Huge thanks to @henry201605 for the continued Milvus backend improvements — the native batch update implementation is a significant performance win for Milvus deployments.


Full Changelog

See CHANGELOG.md for complete details.

Don't miss a new mcp-memory-service release

NewReleases is sending notifications on new releases.