Releases: nNemLab/engram
Releases · nNemLab/engram
v0.2.4
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
v0.2.3
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
v0.2.2
v0.2.1
⚠️ 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 theengram-memoryplugin 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
⚠️ 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 theengram-memoryplugin 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-raggrounding daemon (HTTP) + theengram-memoryClaude 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 aSTRONG/WEAK/NONEverdict so it stays quiet when nothing relevant exists. - Session priming & reflection —
session.primeseeds 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 ranking —
rag.cite+ acontent_usagetable weight cited entries up in later retrieval. rag.querycalibration & scoping — returns averdictwith results; acceptstoken_budget,level, andsince.- Backup / verify / restore —
eos-snapshot,eos-verify(content-hash + integrity invariants),eos-restore(verify-first, backup-first, typed confirmation). - Source health —
sources.healthtool +eos-source healthCLI. - Docker install — full stack via
docker compose(MCP HTTP transport + daemons + private SearXNG); provider-agnostic LLM viaENGRAM_LLM_*. - Uninstall —
eos-uninstall(native or Docker) with optional database export. - Schema migrations
003(grounding /content_usage) and004(content.protected).
Changed
sentence-transformersmoved to an optional[rag]extra (numpypromoted to core). Real installs (eos-init, Docker) pull[rag]; a bare core install is torch-free.rag.queryresponse 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