Skip to content

Engram v0.2.0

Latest

Choose a tag to compare

@FBISiri FBISiri released this 09 Jun 02:09

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 Memory with WithConfidence option; Score multiplied 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.6 bypass Engram and land as markdown drafts in $HOME/siri-vault/Reflection/drafts/
  • 30-day TTL + source:reflection tag on every reflection-origin insight
  • Dream Engine boundary isolation — consolidation loops skip source:reflection memories younger than 7 days
  • Evidence grounding gate — rejects batches with <2 source memories before calling Haiku
  • Event-driven reflection — RunSingleEvent path 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, /health endpoints
  • 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_until field with background cleanup goroutine
  • TTL auto-calculator — valid_until derived from type × importance matrix at handleAdd / handleUpdate layer
  • Deep /health endpoint — pings Qdrant live and bypasses Bearer auth for external probes

Post-tag additions (included in Docker images)

  • Physical collection isolation (Phase 4) with CollectionFromContext routing and scoped dedup
  • Migration tooling: migrate-collections, drop-legacy, migrate-extra-collections
  • Mass-delete guardrail — dry_run support for memory_update / memory_delete to preview changes
  • Enhanced /healthuptime_seconds, memory_count, last_reflection, embedding_latency p50/p99 + Prometheus metrics wiring
  • Embed cache — LRU embedding cache with /metrics endpoint
  • CONTRIBUTING.md, docs/configuration.md, docs/api.md

Changed

  • Dream Engine scroll pagination — scrollAll helper avoids truncated result windows
  • Reflection / Dream hot paths — loop-hoisted time calculations, propagated context.Context through to callHaiku
  • Consolidation semantics — superseded memories marked and cleaned up consistently across orient and gather phases
  • Unreflected-memory fetch — indexed reflected_at filter replaces prior full-scan path
  • Module path renamed from anthropics/engram to FBISiri/engram
  • ENGRAM_COLLECTION_NAME environment variable deprecated; all references removed (fc6f87b)

Fixed

  • Multi-store fan-out: NotFound errors in Update, SearchByIDs, and SetPayload now logged at WARN and do not fail the operation (2e0af12, b7b6374, 9afb8b1)
  • Reflection Engine: orphan-ID issue causing sources_marked=0 resolved (2e0af12)
  • Dockerfile: builder image upgraded from golang:1.24-alpine to golang:1.25-alpine to match go.mod requirement (053a5ce)
  • Hardcoded 1536-dimension zero-vector fallback in Dream and Reflection removed
  • Gate2 now uses new_memories_since_last_run instead of session_count; Gate1 relaxed from 24h to 20h
  • mockStore implements DeleteExpired to satisfy the memory.Store interface
  • MCP tool names use underscores instead of dots for Claude API compatibility
  • GetDense().GetData() replaces deprecated GetData() for Qdrant vector extraction

Infrastructure

  • GitHub Actions workflow publishes Docker images to imsiri/engram on Docker Hub on every push to main