What's New
P4 Harvest Evolution (#641)
- Evolve instead of duplicate: Before storing a harvested memory, checks semantic similarity against existing active memories. If match > 0.85, evolves via
update_memory_versioned()instead of creating a new duplicate. - New config:
MCP_HARVEST_SIMILARITY_THRESHOLD(default 0.85),MCP_HARVEST_MIN_CONFIDENCE_TO_EVOLVE(default 0.3) harvest_config_from_env()factory function for environment variable overrides- 9 new tests
Sync-in-Async Refactoring (#637)
_execute_with_retrynow wraps operations inasyncio.to_thread()— DB operations routed through this helper no longer block the event loop- 3 new async threading tests
- TODO documented for ~122 remaining direct
self.conn.execute()calls
Quality
- UTC timestamps for evolution history
- Error handling for invalid env var values
- Strengthened test assertions (no vacuous passes)
Full Changelog: v10.30.0...v10.31.0