Skip to content

YantrikDB

v0.7.21 Feature

This release adds 3 notable features for engineering teams evaluating rollout.

✓ 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

Updates New API, Upgrade notes, and Replication & lifecycle across a mixed release.

Changes in this release

Feature Medium

Adds first-class record-to-record link capabilities (supersedes, advances, contradicts, supports, questions, derived_from).

Adds first-class record-to-record link capabilities (supersedes, advances, contradicts, supports, questions, derived_from).

Source: llm_adapter@2026-05-30

Confidence: high

Feature Medium

Introduces new API methods: record_with_links, link, unlink, linked_records, recall_with_links, reify_supersedes_links.

Introduces new API methods: record_with_links, link, unlink, linked_records, recall_with_links, reify_supersedes_links.

Source: llm_adapter@2026-05-30

Confidence: high

Feature Medium

Adds link-aware recall that demotes superseded records and surfaces linked supporters/contradictors.

Adds link-aware recall that demotes superseded records and surfaces linked supporters/contradictors.

Source: llm_adapter@2026-05-30

Confidence: high

Feature Medium

Adds automatic schema migration from v30 to v31, creating record_links table and covering indexes.

Adds automatic schema migration from v30 to v31, creating record_links table and covering indexes.

Source: llm_adapter@2026-05-30

Confidence: high

Feature Low

Adds idempotent link/unlink operations with UNIQUE constraint for replication safety.

Adds idempotent link/unlink operations with UNIQUE constraint for replication safety.

Source: llm_adapter@2026-05-30

Confidence: high

Feature Low

Adds `forget()` handling that marks links as broken when source or target is forgotten, preserving audit trail.

Adds `forget()` handling that marks links as broken when source or target is forgotten, preserving audit trail.

Source: llm_adapter@2026-05-30

Confidence: high

Feature Low

Adds `reify_supersedes_links()` one‑shot conversion from legacy metadata.supersedes to real Supersedes links.

Adds `reify_supersedes_links()` one‑shot conversion from legacy metadata.supersedes to real Supersedes links.

Source: llm_adapter@2026-05-30

Confidence: high

Feature Low

Notes deferred follow‑up items: `relate()` phantom‑entity prerequisite and windowed orphan/leak audit helper.

Notes deferred follow‑up items: `relate()` phantom‑entity prerequisite and windowed orphan/leak audit helper.

Source: llm_adapter@2026-05-30

Confidence: low

Bugfix Low

Ensures `correct()` preserves record links when correcting text/metadata.

Ensures `correct()` preserves record links when correcting text/metadata.

Source: llm_adapter@2026-05-30

Confidence: high

Refactor Low

Refactors design based on adversarial redteam (gpt‑5.5, deepseek‑chat) and code‑grounding investigations.

Refactors design based on adversarial redteam (gpt‑5.5, deepseek‑chat) and code‑grounding investigations.

Source: llm_adapter@2026-05-30

Confidence: high

Full changelog

First-class record-to-record links — the deepest ask from the yantrikdb-agi gap analysis (Phase 1 XC1 / Phase 2 Proposal 2). Records can now express supersedes / advances / contradicts / supports / questions / derived_from relationships to each other, atomically with the write, and those links are visible to recall.

Implemented across #53 (substrate) + #55 (recall + Python bindings); design record in docs/record_link_model_rfc.md (#52).

Additive — no behavior change

Existing paths (record(), recall(), correct()) are byte-identical. The link surface is entirely new opt-in methods, so there is no behavior change and no feature flag — a deployment carries the link model dormant until something calls a *_with_links method.

New API (engine + Python)

  • record_with_links(text, links=[{"target_rid": "...", "link_type": "supersedes"}], ...) — record a memory and attach links
  • link(source_rid, target_rid, link_type) / unlink(...)
  • linked_records(rid, direction="both", link_type=None) — traversal; contradicts is bidirectional
  • recall_with_links(query, top_k, expand_links=N, ...)link-aware recall: supersedes-demotion (a stale, superseded record is demoted) + budget-capped neighbor surfacing, via a relation-aware polarity map
  • reify_supersedes_links() — one-shot conversion of the legacy metadata.supersedes = "<rid>" convention into real Supersedes links (upgrade step)

Link types: advances / supersedes / contradicts / supports / questions / derived_from / custom:<name>.

The headline correctness win

Before: A supersedes B, you query something close to B → the engine returned stale B and never surfaced A. Now: recall_with_links(query_near_B, expand_links=1) demotes B and surfaces A above it. contradicts surfaces the contradictor without an endorsing relevance halo; supports pulls in a linked supporter even when it's semantically far from the query.

Schema

Migration v30 → v31: adds the record_links table + two covering indexes. Additive, forward-only, no data transform. Runs automatically on first open.

Replication & lifecycle

  • link / unlink op kinds; idempotent apply on followers (UNIQUE + INSERT OR IGNORE); leader HLC carried.
  • forget() marks links broken_source_forgotten / broken_target_forgotten (audit-trail), never deletes.
  • v0.7.20 correct() synergy: in-place correction preserves the rid, so a record's links survive a correction for free.

Design provenance

This release went through adversarial redteam (gpt-5.5, deepseek-chat) + three code-grounding investigations before implementation. The redteam reshaped the design materially — notably proving that recall integration is a correctness requirement (not a ranking nicety) and surfacing relation-aware scoring. The full A/B/C alternatives analysis, decisions, and changelog are in the design-record RFC.

Deferred to follow-ups

  • relate() phantom-entity prerequisite (#56) — rid endpoints currently mint phantom unknown entities; independent hygiene, no correctness impact.
  • Windowed orphan/leak audit helper — the trader postmortem proved the existing oplog-presence "orphan" metric is a compaction artifact, not a leak; the replacement windowed check is a small follow-up.

Upgrade notes

  • Additive; safe to adopt. Schema v31 migration is automatic + forward-only.
  • Existing correct() / recall() / record() callers need no changes.
  • To change a record's embedding, continue using forget() + record()correct() and the link model are text/metadata/relationship-level.
  • Server-mediated deployments (yantrikdb-server) pick this up on their next engine pin bump; the MCP tool surface for the link methods lands with that bump.

Stats

1530/1530 lib tests pass. cargo fmt --check --all + cargo clippy --all-targets clean. Python bindings verified locally against a real interpreter.

🤖 Generated with Claude Code

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.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]