You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+11Lines changed: 11 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,6 +10,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
10
10
11
11
## [Unreleased]
12
12
13
+
## [10.24.0] - 2026-03-05
14
+
15
+
### Fixed
16
+
17
+
-**[#551] External embedding API silent fallback corrupts vector space**: When an external embedding provider (vLLM, Ollama, TEI, OpenAI-compatible) returned an error, `sqlite_vec.py` silently fell back to the local ONNX model. This produced embeddings in a different vector space than the rest of the database, causing all subsequent semantic searches to return incorrect or irrelevant results with no warning to the user. The fix replaces the silent `logger.warning + fallback` path with a hard `raise RuntimeError(...)` that clearly states the API failure reason and, when detectable, the existing database embedding dimension (read from `sqlite_master` via `_get_existing_db_embedding_dimension()` using `asyncio.to_thread()` for non-blocking execution). A stale integration test that asserted a `version` field on `/api/health` (removed in the GHSA-73hc-m4hx-79pj security hardening) was also corrected.
18
+
19
+
### Tests
20
+
21
+
- 10 regression tests in `tests/storage/test_issue_551_external_embedding_fallback.py` covering: hard failure on API error, dimension mismatch detection, DRY error message format, `asyncio.to_thread` integration, and interaction with the existing DB dimension helper
Copy file name to clipboardExpand all lines: CLAUDE.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,7 +16,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with th
16
16
17
17
MCP Memory Service is a Model Context Protocol server providing semantic memory and persistent storage for Claude Desktop and 13+ AI applications. It uses vector embeddings for semantic search, supports multiple storage backends (SQLite-vec, Cloudflare, Hybrid), and includes advanced features like memory consolidation, quality scoring, and OAuth 2.1 team collaboration.
18
18
19
-
**Current Version:** v10.23.0 - Quality scorer fix, consolidator improvements, two new opt-out flags: fix asyncio NameError in ai_evaluator.py (#544), fix consolidator invalid memory_type and dedup bug (#545), MCP_TYPED_EDGES_ENABLED opt-out (#546), MCP_CONSOLIDATION_STORE_ASSOCIATIONS opt-out (#547) — 14 new tests, 1,387 total — see [CHANGELOG.md](CHANGELOG.md) for details
19
+
**Current Version:** v10.24.0 - External embedding API silent fallback fixed: raises RuntimeError on API failure instead of mixing embedding spaces (#551), DRY error messages with DB dimension detection, stale health endpoint integration test corrected — 10 new tests, 1,397 total — see [CHANGELOG.md](CHANGELOG.md) for details
20
20
21
21
> **🎯 v10.0.0 Milestone**: This major release represents a complete API consolidation - 34 tools unified into 12 with enhanced capabilities. All deprecated tools continue working with warnings until v11.0. See `docs/MIGRATION.md` for migration guide.
Copy file name to clipboardExpand all lines: README.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -265,20 +265,20 @@ Export memories from mcp-memory-service → Import to shodh-cloudflare → Sync
265
265
---
266
266
267
267
268
-
## Latest Release: **v10.23.0** (March 5, 2026)
268
+
## Latest Release: **v10.24.0** (March 5, 2026)
269
269
270
-
**Quality scorer fix, consolidator improvements, two new opt-out flags**
270
+
**Bug fix: external embedding API failure now raises an error instead of silently corrupting the vector space**
271
271
272
272
**What's New:**
273
-
-**Fix asyncio NameError in batch quality scoring** (closes #544): Missing `import asyncio` in `ai_evaluator.py` caused `NameError` crashes for all users without ONNX Runtime, leaving 41%+ of memories unscored.
274
-
-**Fix consolidator memory_type and dedup bugs** (closes #545): Invalid `memory_type="association"` (not in ontology) and missing `skip_semantic_dedup=True` caused association content to be rejected as duplicates; store() failure reason now logged.
275
-
-**MCP_TYPED_EDGES_ENABLED=false opt-out** (closes #546): Disable typed edge inference — all inferred relationships return as `"related"` when disabled (default: `true`).
276
-
-**MCP_CONSOLIDATION_STORE_ASSOCIATIONS=false opt-out** (closes #547): Suppress writing association entries to `memories` table during consolidation; associations remain in `memory_graph` (default: `true`).
277
-
-**1,387 tests** now passing (14 new regression tests for all four issues)
273
+
-**Fix silent fallback on external embedding API failure** (closes #551): When an external embedding provider (vLLM, Ollama, TEI, OpenAI-compatible) returned an error, the service silently fell back to the local ONNX model, mixing embedding spaces and causing all semantic searches to return incorrect results. Now raises a hard `RuntimeError` with the API failure reason and, when detectable, the existing DB dimension.
274
+
-**DRY, informative error messages**: Error includes the detected DB embedding dimension from `sqlite_master` (via `_get_existing_db_embedding_dimension()`) to help diagnose mismatches.
275
+
-**Stale integration test corrected**: `/api/health` integration test updated to match the security-hardened endpoint (GHSA-73hc-m4hx-79pj stripped the `version` field).
276
+
-**1,397 tests** now passing (10 new regression tests for issue #551)
278
277
279
278
---
280
279
281
280
**Previous Releases**:
281
+
-**v10.23.0** - Quality scorer fix, consolidator improvements, two new opt-out flags: fix asyncio NameError in ai_evaluator.py (#544), fix consolidator invalid memory_type and dedup bug (#545), MCP_TYPED_EDGES_ENABLED opt-out (#546), MCP_CONSOLIDATION_STORE_ASSOCIATIONS opt-out (#547) — 14 new tests
0 commit comments