First production-ready release. Consolidates ~6 months of development across the Reflection Engine, Dream Engine, memory lifecycle, and observability infrastructure.
Docker Hub:
imsiri/engram:0.2.0·imsiri/engram:latest·imsiri/engram:0.2
Published: 2026-06-02
Added
Reflection Engine v1.1
- Confidence field (0–1) on
MemorywithWithConfidenceoption;Scoremultiplied by confidence when set, persisted in Qdrant payload - Haiku prompt emits
CONFIDENCE:line; parser defaults to 0.8 when absent - Low-confidence draft diversion — insights with
0 < conf < 0.6bypass Engram and land as markdown drafts in$HOME/siri-vault/Reflection/drafts/ - 30-day TTL +
source:reflectiontag on every reflection-origin insight - Dream Engine boundary isolation — consolidation loops skip
source:reflectionmemories younger than 7 days - Evidence grounding gate — rejects batches with
<2source memories before calling Haiku - Event-driven reflection —
RunSingleEventpath for task-failure / user-correction triggers; caps output at 1 insight - MCP tool
reflection_run_event(cause, summary, evidence_ids, importance, extra_tags, dry_run) - Confidence decay scoring for memory staleness detection
HTTP Transport & Dream Engine
- HTTP transport with
/reflect,/reflect/check,/healthendpoints - Dream Engine — autonomous 4-phase memory consolidation (Orient → Gather → Consolidate → Prune) with three gate conditions
- Voyage AI embedder as alternative to OpenAI
- Memory expiry —
valid_untilfield with background cleanup goroutine - TTL auto-calculator —
valid_untilderived from type × importance matrix athandleAdd/handleUpdatelayer - Deep
/healthendpoint — pings Qdrant live and bypasses Bearer auth for external probes
Post-tag additions (included in Docker images)
- Physical collection isolation (Phase 4) with
CollectionFromContextrouting and scoped dedup - Migration tooling:
migrate-collections,drop-legacy,migrate-extra-collections - Mass-delete guardrail —
dry_runsupport formemory_update/memory_deleteto preview changes - Enhanced
/health—uptime_seconds,memory_count,last_reflection,embedding_latencyp50/p99 + Prometheus metrics wiring - Embed cache — LRU embedding cache with
/metricsendpoint CONTRIBUTING.md,docs/configuration.md,docs/api.md
Changed
- Dream Engine scroll pagination —
scrollAllhelper avoids truncated result windows - Reflection / Dream hot paths — loop-hoisted time calculations, propagated
context.Contextthrough tocallHaiku - Consolidation semantics — superseded memories marked and cleaned up consistently across
orientandgatherphases - Unreflected-memory fetch — indexed
reflected_atfilter replaces prior full-scan path - Module path renamed from
anthropics/engramtoFBISiri/engram ENGRAM_COLLECTION_NAMEenvironment variable deprecated; all references removed (fc6f87b)
Fixed
- Multi-store fan-out:
NotFounderrors inUpdate,SearchByIDs, andSetPayloadnow logged at WARN and do not fail the operation (2e0af12,b7b6374,9afb8b1) - Reflection Engine: orphan-ID issue causing
sources_marked=0resolved (2e0af12) - Dockerfile: builder image upgraded from
golang:1.24-alpinetogolang:1.25-alpineto matchgo.modrequirement (053a5ce) - Hardcoded 1536-dimension zero-vector fallback in Dream and Reflection removed
- Gate2 now uses
new_memories_since_last_runinstead ofsession_count; Gate1 relaxed from 24h to 20h mockStoreimplementsDeleteExpiredto satisfy thememory.Storeinterface- MCP tool names use underscores instead of dots for Claude API compatibility
GetDense().GetData()replaces deprecatedGetData()for Qdrant vector extraction
Infrastructure
- GitHub Actions workflow publishes Docker images to
imsiri/engramon Docker Hub on every push tomain