Skip to content

YantrikDB

v0.9.1 Bugfix

This release fixes issues for SREs watching stability and regressions.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

agent-memory ai-agents anthropic claude-code cognitive-memory database
+12 more
embeddings hnsw knowledge-graph llm llm-memory mcp memory persistent-memory python rust semantic-memory vector-db

Summary

AI summary

Fixes the regression where set_embedder_named() always failed due to exclusive access contention introduced in v0.9.0.

Full changelog

v0.9.1 — patch

Fixes a v0.9.0 regression (#58): set_embedder_named() always failed with "requires exclusive access to the engine", regardless of the model name.

Root cause

v0.9.0 made the pyo3 constructors spawn a background worker pool (materializer + compactor). Each worker thread holds a Weak<YantrikDB>, and set_embedder_named reaches the engine via Arc::get_mut, which requires strong count == 1 AND weak count == 0. The workers'' weak refs alone tripped that guard — so the named / multilingual embedder-swap path was broken.

Fix

The binding now stops the worker pool (dropping the guards joins the threads, releasing the weak refs), performs the swap with exclusive access, then respawns the pool. No engine API change; fixes both construct-then-swap and runtime swaps; the original error is preserved for genuine external ConnectionProxy / clone leaks.

Impact

Unblocks the multilingual backend in yantrikdb-mcp#14 — its xfail''d e2e passes once this is published, with no further code change.

Published to PyPI (pip install -U yantrikdb) and crates.io (yantrikdb).

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track YantrikDB

Get notified when new releases ship.

Sign up free

About YantrikDB

All releases →

Related context

Earlier breaking changes

  • v0.9.3 `recall_demand` isolation is namespace‑keyed and disabled on encrypted databases, purging legacy rows via migration.
  • v0.7.20 `correct()` now mutates in place, preserving rid and adding revision history (BREAKING CHANGE).
  • v0.7.9 Pure-additive; existing engines keep English models on v0.1.0.

Beta — feedback welcome: [email protected]