Skip to content

YantrikDB

v0.7.3 Feature

This release adds 2 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

Affected surfaces

breaking_upgrade

Summary

AI summary

Fixed non‑idempotent migration causing duplicate column name: embedding errors on rewound schema versions.

Full changelog

Hotfix for the v0.8.13 cluster upgrade failure (yantrikos/yantrikdb-server homelab incident, 2026-05-09).

The bug

Engine 0.6.x → 0.7.2 migration tripped on duplicate column name: embedding for any deployment whose meta.schema_version had been previously rewound — e.g. by a brief rollback to an older binary against a newer on-disk DB. SQLite has no IF NOT EXISTS for ALTER TABLE ADD COLUMN, so MIGRATE_V23_TO_V24 was non-idempotent at the statement level.

The fix (two parts)

1. Idempotent migration runner. New run_migration_idempotent helper splits each migration SQL batch on ;, executes statements individually, and swallows known-safe errors:

  • duplicate column name: <X> — re-running ALTER TABLE ADD COLUMN
  • <X> already exists — defensive belt-and-suspenders for CREATE statements

Replaces conn.execute_batch(sql) in the migration loop. Makes every entry in the v1→v25 chain replay-safe retroactively, healing already-affected deployments without manual intervention.

2. MAX-stamp meta.schema_version. Previously open() unconditionally wrote SCHEMA_VERSION to meta — which silently downgraded the stamp if an older binary ran against a newer DB. Now writes max(existing_version, SCHEMA_VERSION). Forward-only progress on the meta stamp going forward.

Tests

Two new regression tests in engine/tests.rs:

  • migration_replay_does_not_trip_on_already_present_column — reproduces the homelab failure scenario.
  • migration_meta_stamp_does_not_downgrade — locks the MAX-stamp invariant.

1421 library tests pass (1419 + 2 new). Release build clean.

Upgrade path

Existing v0.6.x / v0.7.x deployments that hit the bug: pull a server build with engine ≥0.7.3. Engine open() will:

  • See existing_version <= 23 (or whatever your meta got rewound to)
  • Re-run V23_TO_V24 idempotently — ALTER TABLE ADD COLUMN no-ops because column exists
  • Run V24_TO_V25 cleanly
  • MAX-stamp meta to current SCHEMA_VERSION

No data loss, no SQL surgery, no manual fixture restoration.

Diagnosis

yantrikdb-server msg 3467c556 (homelab cluster incident, .140/.141 nodes), engine response fa070846, fix commit a5de0f2.

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