What's Changed
Fixed
- [#570] Hybrid backend misidentified as sqlite-vec in
memory_health:HealthCheckFactoryrelied solely on the storage object's class name to select the health-check strategy. When the hybrid backend's storage is accessed through a delegation or wrapper layer the class name is notHybridMemoryStorage, so the factory fell back to the sqlite-vec strategy and reported"sqlite-vec"instead of"hybrid", hiding Cloudflare sync status from users. The factory now performs structural detection — if the storage object exposes both aprimaryattribute and either asecondaryorsync_serviceattribute it is classified as hybrid regardless of class name. The existing SQLite and Cloudflare strategy paths are unchanged. Fixes #570.
Tests
- Three focused unit tests added for
HealthCheckFactorystrategy selection:- SQLite class-name detection path
- Delegated/wrapped hybrid structural detection path
- Unknown storage fallback behavior
Upgrade Notes
This is a pure bug fix — no API changes, no configuration changes, no migration steps required. Upgrade by running:
pip install --upgrade mcp-memory-serviceFull Changelog
https://github.com/doobidoo/mcp-memory-service/blob/main/CHANGELOG.md#10261---2026-03-08
🙏 Special Thanks
@SergioChan — authored the structural hybrid detection fix in PR #574, correctly diagnosing why class-name matching fails for wrapped/delegated hybrid storage and implementing the primary + secondary/sync_service attribute check. Excellent, well-scoped contribution.