Changelog¶
0.8.1 (September 20, 2026)¶
- suppress only the known BGE reranker and default embedding reports about regenerated
position_idsbuffers; preserve other loading diagnostics and remove blanket Transformers warning suppression - refresh
engram demoaround a fictional project, current retrieval explanations and setup commands, with unattended execution and isolated demo storage - fix demo compatibility with Python 3.11 and ensure temporary data and web processes are cleaned up on exit
- carry the web page's access token into same-origin API requests so authenticated workspaces load and search correctly
0.8.0 (September 20, 2026)¶
- add guided
engram initwith local model presets, private new-store creation, environment-override reporting and portable MCP connection settings - add
engram doctorfor configuration, storage and model readiness;--fullverifies real model inference, a local MCP handshake and isolated save/retrieve behavior - add
serve --mcp --no-warmupso endpoint diagnostics can inspect the protocol without loading models - retry a focused excerpt for confidence-rejected long memories even when another candidate blocks the early retry; preserve the existing confidence cutoff and one-excerpt-per-document limit
- omit repeated unrelated boilerplate next to a complete matching fact while retaining unique context and recognized qualifications
- add reproducible synthetic production-retrieval checks, separate from the historical LongMemEval result
0.7.0 (September 20, 2026)¶
- validate configuration before startup, reject unknown fields and malformed values, and support an environment override for every setting
- add
engram config check,showandschema, with redacted values and provenance; inspection does not initialize storage or load models - share effective settings through MCP
config_show, nativeconfig_show, and the authenticated web configuration endpoint - show why retrieval candidates were returned, rejected by confidence, filtered or excluded by the result budget; include model scores and focused-excerpt traces
- make explanation mode bypass result caching and leave access history, dormant evaluations and MCP session handoffs unchanged
- expose the shared report through CLI
--explain(--debugremains an alias), nativesearch_explain, MCPrecall_explain, and the web workspace - use the configured result limit when ordinary search or its explanation omits one, while retaining interface input limits
- keep machine-readable CLI output clean when model libraries print diagnostics
- honor a zero cache capacity as disabled, synchronize resolved Hugging Face credentials, and recheck memory eligibility after reranking
- redesign the logo, public website and documentation around a dark copper identity, with responsive layouts, keyboard navigation and reduced-motion support
- centralize interface version reporting and verify built package contents before publication
- independently confirm 470/470 session recall-any@5 in a fresh full LongMemEval development run without saved-score reuse; publish text-free question rankings and provenance, with abstention, confidence and native API limitations
- correct the comparison table: label external answer-accuracy and retrieval metrics separately, link primary reports and remove unsupported misses-out-of-470 claims
- use
BAAI/bge-reranker-baseas the default local reranker; keep MiniLM available through config - return raw local reranker logits and apply a sigmoid once; preserve hosted normalized scores
- retry at most one focused source excerpt per eligible long document when every full-document local sigmoid score is below
rerank_passage_floor(default 0.001); keep the 0.6 production confidence gate independent and retain max full/excerpt aggregation - match conservative regular English singular/plural forms during excerpt selection, counting each original query term once per sentence
- retain full/excerpt raw scores and source offsets; keep the semantic query unchanged and exclude resolved relative-time text only from lexical selection
- remove extra lexical/prior bonuses and random noise from cross-encoder results; honor the optional bounded
rerank_fusion_alphablend - keep the best confidence-eligible hybrid candidate in requests for at least two results, without changing scores or replacing the rerank winner; expose
preserve_prior_candidateto disable coverage - separate cached rerank results when the fusion weight, confidence gate, coverage setting, passage fallback flag or activation floor changes
- preserve query spelling instead of applying a single-word substitution
- share date parsing and relative windows with the benchmark, and apply its temporal boost once per session
- correct NDCG rank discounts and include unretrieved answers in the ideal ranking
- record benchmark dataset/source hashes, model names, result window, passage fallback flag/floor and settings; support
--no-passage-fallbackand--passage-floor, and reject incompatible or duplicate resume records - preserve configured fusion and passage activation values unless the corresponding CLI option overrides them; document the activation floor as a benchmark development choice, not a calibrated probability or held-out accuracy claim
- refuse existing output paths for fresh benchmark runs and claim the result file before writing new provenance
the fresh benchmark above measured the retrieval candidate published in
c3b8cea, before the configuration and explanation additions. the evidence
keeps its original source fingerprints; the complete 0.7.0 package was not
given a second full LongMemEval run.
0.6.2 (September 19, 2026)¶
- add
hf_tokenconfig and env fallback so model downloads authenticate without manual huggingface-cli logins - resolve relative dates ("last Saturday", "N days ago") and keep the temporal boost after cross-encoder reranking
- switch license to Engram Public Use License 1.0
0.6.1 (September 18, 2026)¶
- widen cross-encoder candidate pool from 20 to 35 so deep semantic hits don't get buried by lexical BM25
- use regex tokenization in BM25 so trailing punctuation doesn't kill keyword matches
0.6.0 (September 18, 2026)¶
new features¶
- dormant recall in shadow mode — tracks queries with low confidence or empty retrieval results in an associative shadow buffer; when new memories are ingested or consolidated, the system automatically checks for newly satisfied associations and reactivates dormant queries (
engram dormantCLI, config controls, and background evaluation) - native memory service layer — introduced
EngramService(engram/service.py), providing a high-level programmatic interface that unifies memory CRUD, evidence tracking, project context assembly, and hybrid retrieval - evidence graph & provenance tracking — added first-class evidence extraction and verification (
engram/evidence.py) to trace ground-truth source references, causal antecedents, and factual reliability - project context provider — added session-aware context distillation (
engram/project_context.py) for assembling working memory state, open decisions, and active task parameters for coding agents - codex adapter — added native adapter (
engram/adapters/codex.py) bridging Codex tool calls, memory handoffs, and skill execution directly into Engram - neural graph & connections overhaul — complete overhaul of the web dashboard's Connections workspace into an interactive neural exploration canvas:
- 2D camera with cursor-anchored zoom (0.25x–4.0x), smooth click-drag panning, and reset controls
- dual layout modes: concentric layer rings (Working → Semantic → Episodic → Procedural) with glowing orbits and force-directed spring cluster physics
- constellation mode: click-to-spotlight 1-hop and 2-hop subgraphs with camera targeting and unrelated node dimming
- in-graph inspector drawer showing direct entity connections with jump links, linked memory excerpts, and inline type/alias management
- live entity search with auto-suggest dropdown and keyboard navigation (
/,Esc,Enter) - real-time synaptic pulse cascades with shockwave bursts and edge particle flows (
⚡ pulsebutton,Fhotkey, and live access log polling) - dual sizing metric combining memory mention volume and relationship degree
- zigcho-infra design language — full UI reskin of the dashboard to the refined slate-black palette (
#09090abase,#111113surface,#292427borders,#ed83b6signature pink,#8fd4b1mint,#7bbcffblue) - unbounded exports —
/api/exportnow supports exporting all memories without forced pagination caps
fixes¶
- cross-database SQL compatibility — replaced postgres-specific cast syntax with standard
CAST(e.aliases AS TEXT)in entity search so MCP entity discovery runs safely across SQLite and Postgres - defensive consolidation — access log and event pruning now defensively handles differing driver rowcount behaviors across database backends
- web script parsing — eliminated duplicate state declaration in the web dashboard preventing browser reference errors
- standard package metadata — pinned build-system hatchling to ensure strict compliance with packaging metadata standards across build environments
0.5.2 (April 24, 2026)¶
new features¶
- memory intelligence workbench — added query briefing, query comparison, and recent hotspot surfacing to the web dashboard so Engram can summarize what matters instead of only exposing raw tables and graph views
- 3 new MCP tools —
focus_brief,compare_queries, andhotspotsexpose the same higher-level intelligence surface to agent clients over MCP
fixes¶
- postgres-safe drift dashboard — web drift check and drift fix now avoid SQLite-only
PRAGMA busy_timeoutandBEGIN IMMEDIATEcalls when Engram is running on Postgres - drift metadata compatibility — invalidated-memory drift checks no longer rely on SQLite
json_extract(...), so the drift panel works correctly against Postgresjsonb - better drift API errors — drift routes now return clean JSON errors for unexpected backend failures instead of surfacing broken frontend syntax errors
- postgres compatibility sweep — neural map aggregation, bridges, community summaries, quality metrics, and benchmark helpers now avoid SQLite-only query functions on Postgres-backed installs
0.5.1 (April 24, 2026)¶
fixes¶
- postgres migration hardening —
engram migrate-postgresnow tolerates stale SQLite references during real-world migrations instead of failing on orphanedentity_mentions,importance_history, orstatus_historyrows - migration verification — post-copy verification now compares against valid migratable rows, so installations with historical SQLite inconsistencies can still complete a clean verified move to postgres
0.5.0 (April 24, 2026)¶
new features¶
- postgres backend — engram can now use postgres as its primary storage backend for concurrent web + MCP deployments, while keeping sqlite as the default local-first option
- sqlite to postgres migration command — new
engram migrate-postgrescommand copies an existing sqlite store into postgres, rebuilds full-text search rows, verifies key row counts, and can switchconfig.yamlautomatically - config-level backend selection —
storage_backendandpostgres_dsnare now first-class config fields and can also be driven byENGRAM_STORAGE_BACKEND/ENGRAM_POSTGRES_DSN
docs¶
- added postgres migration guide
- updated install, config, CLI, and README docs for mixed sqlite/postgres deployments
0.4.1 (April 23, 2026)¶
fixes¶
- web dashboard stability — high-traffic dashboard routes now use short-lived store connections instead of the shared app store connection, which reduces SQLite contention under concurrent polling
- drift check + fix responsiveness — web drift operations now run off the async request thread, return fast
503errors on lock contention, and avoid pinning the whole UI while a check or fix runs - lighter dashboard boot — the web UI defers more work until it is needed and reduces background polling pressure during startup
docs¶
- release metadata updated for the
0.4.1patch release
0.4.0 (April 23, 2026)¶
new features¶
- retrieval explainability — search now exposes query intent, expansion terms, exact-match boosting, cache-hit status, and candidate counts through
recall_explainand/api/search/explain - query expansion + exact match boosts — retrieval can expand common operator queries (
auth,deploy,code,graph,memory) and reward exact phrase/token matches without overwhelming the dense pipeline - search result caching — repeated hybrid searches are cached in-memory with automatic invalidation on writes, edits, forgets, layer changes, and bulk updates
- richer continuity tooling —
session_checkpointadds explicit stop-point checkpoints on top of automatic handoff refreshes, andresume_contextnow falls back to generating a handoff when no saved packet exists yet - continuity APIs — the web server now exposes
/api/session-handoffsand/api/session-handoffs/:session_idfor dashboard and agent clients that want resumable session state without MCP
docs¶
- MCP tools reference now covers
recall_explainandsession_checkpoint - REST API reference now documents the search explain endpoint and session handoff endpoints
- release metadata updated for the new feature release
0.3.2 (April 23, 2026)¶
new features¶
- structured session handoffs — active MCP sessions now maintain a resumable handoff packet with recent work, decisions, open loops, touched entities, and recall history
- 2 new MCP tools —
session_handoffbuilds and optionally persists a structured handoff packet,resume_contextloads the latest saved handoff for fast startup - session continuity skill — added
examples/skills/session-continuity/SKILL.mdso agents have a concrete default pattern for startup, in-session writes, and stop-point handoffs
docs¶
- docs site now covers the session continuity flow on the home page, MCP tools reference, and Claude Code setup guide
- README and examples docs now point to the new continuity skill and handoff workflow
0.3.1 (April 14, 2026)¶
new features¶
- LLM API backends —
anthropicandopenaibackends for fact extraction, memory enrichment, consolidation. configure withllm.backend+llm.api_keyin config.yaml or env vars.pip install 'engram-memory-system[anthropic]'or[openai] - memory types —
fact,procedure,narrativecolumn on every memory. indexed, filterable. auto-backfilled from existing metadata on migration - retrieval profiles —
recallacceptsmode:facts_only(structured knowledge only),facts_plus_rules(+ procedures),full_context(everything). filters before cross-encoder reranking - status tracking — lifecycle states:
active,challenged,invalidated,merged,superseded.status_historyaudit table with timestamps and reasons. non-active memories excluded from retrieval - 3 new MCP tools:
update_status,recall_by_type,status_history(66 total) remembertool acceptsmemory_typeparam.remember_decision,remember_error,remember_project,remember_negativeauto-set the correct type
fixes¶
- hnswlib
knn_querycrash when MCP passes floatk(JSON numbers are floats) - schema init on existing DBs — tolerates missing columns, runs migration before index creation
- config.yaml gitignored (contains API keys), config.example.yaml tracked
0.2.0 (April 11, 2026)¶
new features¶
- HNSW ANN index — approximate nearest neighbor via hnswlib, 100% recall@10, 0.09ms search, scales to 1M vectors
- historically reported 98.1% session recall-any@5 on a 470-question LongMemEval subset; see measurement scope and limitations
- multi-backend embeddings — Voyage AI, OpenAI, Google Gemini alongside local MLX/sentence-transformers
- Voyage cloud reranker — rerank-2.5/2.5-lite alongside local cross-encoder
- SSE MCP transport —
engram serve --mcp-ssefor HTTP clients - CLI: reembed — re-embed all memories after switching embedding model
- CLI: watch — poll a directory for new files and auto-ingest
- CLI: export/import — portable JSON backup with optional embeddings
- web auth — bearer token auth via
web.auth_tokenconfig - Docker — Dockerfile + docker-compose.yml
- 72 pytest tests across 6 modules
- 13 examples — setup guides + Python scripts for every major feature
- GitHub Actions CI — tests on push/PR, auto-publish to PyPI on release
- PyPI —
pip install engram-memory-system - docs site — MkDocs Material at engram-memory.dev
fixes¶
- ANN count tracks active ids (hnswlib
mark_deletedoesn't decrement) - debug mode with
rerank=Falseno longer crashes (unboundrerankedvariable) - 9-factor importance (was incorrectly documented as 7-factor)
- 63 MCP tools (was incorrectly documented as 52)
0.1.0 (April 9, 2026)¶
initial release.
- 5-channel hybrid retrieval (dense + BM25 + graph BFS + Hopfield + RRF)
- memory layers (working, episodic, semantic, procedural, codebase)
- entity graph with co-occurrence relationships
- surprise-based importance scoring at write time
- retention regularization (L2/Huber/elastic)
- deep MLP reranker trained on access patterns
- dream cycle consolidation
- drift detection and auto-fix
- pattern extraction from sessions
- negative knowledge
- enriched embeddings (A-Mem)
- memory evolution
- intent-aware retrieval (MAGMA)
- trust-weighted decay
- 63 MCP tools
- web dashboard with neural map
- MLX GPU embedding backend