Skip to content

Releases: nNemLab/engram

v0.2.4

15 Jun 14:17
4c8eba1

Choose a tag to compare

0.2.4 (2026-06-15)

Features

  • rag: add tunable recency scoring to hybrid ranker (#131) (db83a90), closes #73
  • reactor: retry budget + dead-letter for deterministically-failing handlers (#132) (296b8e0)

Bug Fixes

  • close DB connections, httpx clients, and debouncer timers on shutdown (#141) (f0cb6e9), closes #92 #138
  • db: atomic multi-statement writes + serialized shared SQLite connection (#112) (15bbb06)
  • dedup: filter tombstoned embeddings and delete on tombstone (#136) (e7d163a)
  • harden maintenance restore safety (#124) (3eacef5), closes #94
  • kb: clamp list limit to MAX_LIMIT (100) and floor at 1 (#121) (77179f6), closes #118
  • mcp: verify write rowcount and fetchone in sources/set and goals/resolve (#120) (ab3d609), closes #90
  • playbook: process-group cleanup on timeout + consistent early-out shape (#129) (2c1e654), closes #102
  • poller: cap Retry-After backoff and poll due sources concurrently (#126) (123c1cd), closes #87
  • poller: feed gate-path failures into circuit breaker escalation (#135) (b1e0e08), closes #97
  • projector: commit rendered_body before writing vault file (#128) (bb747fd), closes #96
  • reactor: stop cursor on handler failure to prevent silent data loss (#111) (0af1a11)
  • research: harden web and arxiv fetch robustness (#123) (cb23a9e), closes #93
  • research: pin validated IP to connection to close DNS-rebinding TOCTOU (#127) (600d46b), closes #95
  • research: reject non-HTML content-types in ingest_url (#122) (474dd36), closes #77

Performance Improvements

  • db: narrow DB lock to DB-touching regions so non-DB tool work runs concurrently (#130) (0531216), closes #113

v0.2.3

15 Jun 07:22
83d1b8c

Choose a tag to compare

0.2.3 (2026-06-15)

Features

  • dedup: resolve tool for blocked-supersede contradictions (#71) (26a9cad), closes #54
  • log: tamper-evident hash-chained event log (#72) (17a4861), closes #45
  • maintenance: add corpus re-embed migration for embedding-model changes (#74) (29fbdb0), closes #43
  • rag: temporal retrieval — time-bounded query + episodic timeline (#75) (5baaa17), closes #40

Bug Fixes

  • common: validate embed_dim before vec0 DDL interpolation (#98) (ae22ae2), closes #89
  • init: seed starter playbooks in eos-init (#68) (b068a42), closes #67
  • mcp: bound playbook.run subprocess with a timeout (#99) (ae02c41), closes #88
  • poller: handle GitHub tree/compare truncation to avoid skipping files (#107) (3ddf9bf), closes #86
  • projector: skip and dead-letter poison event payloads (#100) (058bb81), closes #84
  • rag: convert sqlite-vec L2 distance to true cosine similarity (#106) (5537bc1), closes #82
  • rag: default source-tier weights so tier ranking isn't a no-op (#78) (c0d6191)
  • reactor: skip and dead-letter poison events instead of freezing (#105) (4b28c05), closes #101
  • repair hybrid retrieval ranking, BM25 recall, grounding verdict, and near-dup dedup (#81) (239e80e)
  • watcher: record human vault edits as new content revisions (#70) (d52b5cf), closes #55

Documentation

  • configuration: add granite-embedding-r2 as the CPU 768-dim option (#79) (6fda21a)
  • fix release badge, recenter header lockup, correct stale references (#76) (73ad702)

v0.2.2

10 Jun 23:28
cfb403c

Choose a tag to compare

0.2.2 (2026-06-10)

Bug Fixes

  • rag: sanitize FTS5 MATCH query so special characters don't crash retrieval (#64) (efbdea0), closes #63

v0.2.1

10 Jun 22:29
24ac4db

Choose a tag to compare

⚠️ Deprecated — ambient memory is non-functional in this release. A query-sanitization bug (#63) makes the grounding daemon error on most natural-language prompts, so the engram-memory plugin injects nothing. Fixed in v0.2.2; upgrade to v0.2.2 or later. The MCP server, daemons, and retrieval tools themselves are unaffected.


0.2.1 (2026-06-10)

Features

  • db: schema/embedding-dimension compatibility guard + eos-version (83079bd)

Documentation

  • restructure README + add documentation index (fb4322e)

v0.2.0

10 Jun 18:00
15d3327

Choose a tag to compare

⚠️ Deprecated — ambient memory is non-functional in this release. A query-sanitization bug (#63) makes the grounding daemon error on most natural-language prompts, so the engram-memory plugin injects nothing. Fixed in v0.2.2; upgrade to v0.2.2 or later. The MCP server, daemons, and retrieval tools themselves are unaffected.


Ambient memory, durability tooling, and a Docker install.

Added

  • Ambient memory — a new engram-rag grounding daemon (HTTP) + the engram-memory Claude Code plugin: auto-injects relevant memory each turn (UserPromptSubmit), primes each session (SessionStart), records grounded-in citations (Stop), with a companion behavioral skill. Retrieval is calibrated to a STRONG/WEAK/NONE verdict so it stays quiet when nothing relevant exists.
  • Session priming & reflectionsession.prime seeds a session with goals + high-confidence memory; session.reflect (+ eos-reflect) surfaces unresolved contradictions, stale high-value entries, and idle goals. Deterministic, no model calls.
  • Citation-weighted rankingrag.cite + a content_usage table weight cited entries up in later retrieval.
  • rag.query calibration & scoping — returns a verdict with results; accepts token_budget, level, and since.
  • Backup / verify / restoreeos-snapshot, eos-verify (content-hash + integrity invariants), eos-restore (verify-first, backup-first, typed confirmation).
  • Source healthsources.health tool + eos-source health CLI.
  • Docker install — full stack via docker compose (MCP HTTP transport + daemons + private SearXNG); provider-agnostic LLM via ENGRAM_LLM_*.
  • Uninstalleos-uninstall (native or Docker) with optional database export.
  • Schema migrations 003 (grounding / content_usage) and 004 (content.protected).

Changed

  • sentence-transformers moved to an optional [rag] extra (numpy promoted to core). Real installs (eos-init, Docker) pull [rag]; a bare core install is torch-free.
  • rag.query response now wraps results with a calibration verdict: {verdict, results}.

Fixed

  • Human edits are no longer silently clobbered (#37) — the poller preserves an upstream change as a non-current revision and raises a contradiction instead of overwriting a human-edited sourced file.

Full changelog: v0.1.0...v0.2.0