Skip to content

v0.4.0 — Quality Sprint

Choose a tag to compare

@AlekseiMarchenko AlekseiMarchenko released this 31 Mar 16:51

What's New

Retrieval actually works now. BM25 full-text search was broken since launch. Trigram search ran against encrypted ciphertext. Context compression silently forwarded decrypted memories to OpenAI. All three are fixed. Benchmark score: 92/100 → 100/100.

Fixed

  • BM25 full-text search — tsvectors now populated from plaintext before encryption
  • Removed trigram search (ran against ciphertext, producing noise)
  • Removed context compression (sent decrypted memories to OpenAI, breaking encryption guarantee)
  • Batch N+1 queries in recall with WHERE id = ANY(...)
  • Specific error handling instead of bare catch {} blocks
  • forget() now logs usage events
  • Migration uses CREATE INDEX CONCURRENTLY to avoid table locks
  • Lazy tsvector backfill during recall for old memories

Added

  • Vitest test suite (32 tests)
  • GIN index on content_tsv
  • VERSION file and CHANGELOG.md

Changed

  • Hybrid retrieval: vector + BM25 (was vector + BM25 + trigram)
  • All packages unified to v0.4.0