v0.9.0 — close the memory gaps
v0.9.0 — close the memory gaps
This release closes four gaps in the substrate so an agent''s memory keeps more of what matters, knows what it doesn''t know, holds recent conversation verbatim, and tracks its own chores — all in the same engine.
Features
- Tiering — recall frequency resists eviction.
access_countnow feeds the eviction score (saturating, log-scaled): frequently-recalled memories stay hot and survive eviction while genuinely cold ones are dropped first. - Demand — the substrate''s known unknowns. Every recall logs query demand;
knowledge_gaps()surfaces queries that are asked often but answered poorly — a direct signal of what the memory is missing. - Conversation — a working-memory ring buffer. A cheap, bounded, encrypted last-N-turns buffer (
record_turn/recent_turns/clear_turns, default window 10) so the most recent exchange is always available verbatim. - Tasks — a thin general chore store. A flat, namespace-scoped task primitive (
task_add/update/list/get/delete) baked into the substrate: title encrypted like memory text, status + priority + optional subtask parent, priority-ordered listing. Deliberately not a project/epic PM hierarchy — that stays a convention on top.
Fix
- pyo3 constructors now spawn the materializer + compactor worker pool. Without the compactor the in-memory delta tier filled to
delta_max(256) and further writes returned Backpressure — wedging long write sessions. All Python construction paths now route through a singlefrom_enginethat owns the worker lifecycle.
Notes
All four features are general substrate primitives, not domain schemas. Published to PyPI (pip install -U yantrikdb) and crates.io (yantrikdb).