Skip to content

v0.9.0 — close the memory gaps

Choose a tag to compare

@spranab spranab released this 27 Jun 19:18

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_count now 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 single from_engine that 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).