| title | Roadmap |
|---|
Demand-gated β we build what people actually use. Track progress on GitHub Issues.
- Ingest date anchors (#1232/#1238) -
remember --timestamp+ import timestamps; time-travel and audit no longer depend on ingest order - Room lifecycle management (#1202/#1203) - rename/update/move-memory across HTTP, CLI, and MCP (schema v19)
- Recall payload conformance tests (#1233/#1239) - full-payload contract pinned across all surfaces
- Fixes: dedup live-check (#1211), default min_score 0.0 (#1228), install.sh ORT libs (#1221), LoCoMo label mapping (#1222)
- Explain recall (#1160) β see why each memory ranked where it did, on every recall surface (CLI
--explain, HTTPexplain, MCP flag) - Contradiction resolution as an auditable ledger (#1172) β supersede/list/undo with provenance; contradiction benchmark segment: fusion winner@1 0.850 β 1.000 after supersede, stale@5 1.000 β 0.000
- Provenance data model (#1172, schema v18) β
source_hashtamper evidence, actor/evidence timeline events,provenance(id)report - Dual-engine vector layer β runtime-switchable vector engine (#1169/#1171)
- Namespace management API (#1181) β rename/merge/delete with explicit memory strategy;
/listpagination metadata (#1188)
fusionis now the default recall strategy (#1123) β weighted RRF of the vector and hybrid rankings; LongMemEval 500Q R@5 0.946 vs 0.854 hybrid (+9.2 pts), zero config needed- Public benchmark page: dual-metric view (recall_any + strict recall_all) with comparison chart (#1141)
- Full-release validation: 500Q pure-default run, binary built from the exact release SHA
- Post-release fixes:
repair --reembedhandles NULL-embedding rows (#1146), CLA check bot allowlist (#1132), repair report reflects final index state (#1149)
- Supersession workflow (#1069) β mark a stale decision as superseded by a newer one; recall flags superseded entries
- Structural export/import (#1068) β full-store round-trip (rooms, graph, edges, documents, timeline) without loss
- UUIDv7 IDs for new memories β time-ordered at the front
- MCP
uteke_get+uteke_update(#1067), richer MCP outputs (#1066) uteke_dreamruns dry-run first β destructive passes need explicit confirmation (#1065)/exportkeeps namespace attribution (#1064); recall cache score parity (#1063)
- Hybrid (RRF) is now the default recall strategy (#1005) β recall@5 85.4% β 98.0%; revert via
strategy = "vector"in[recall] - Scene-segmented LLM extraction with priority scoring (#1009) β
scene:<topic>tags, semantic types, importance values GET /lifecycle/deprecated+GET /guideendpoints (#1007, #1010)- Source provenance for extracted memories (#1012, #1013)
- Chunker fixes via mutation testing: heading duplication + multibyte infinite loop (#1024) β mutation score 50% β 97%
uteke-clicrates.io publish restored + release verify step (#1021, #1030)- HTTP & MCP recall
strategyparity β default hybrid, loud 400/JSON-RPC errors on invalid values (#1034, #1035, #1038) - Cross-compilation for Android/iOS targets (#1014), batch-mode update check skip (#1006), embedding pre-truncation (#1002)
- Release notes heredoc hardening β template file, no shell expansion (#1041)
v0.13.0βv0.13.2 β Safe Lifecycle, Offline Extraction, Security Hardening β Released 2026-08-08β11
- Safe memory lifecycle (#928β#937) β
ACTIVE β DEPRECATED (30-day TTL, restorable) β PRUNED; soft-delete default,uteke lifecyclecommands + HTTP endpoints - Offline rule-based extractor as default (#890) β no LLM/API key needed for basic extraction
- Persistent embedding cache + lazy ONNX load (#896),
repair --reembed/--rebuild(#919, #901) - Update check on all surfaces (#990), NULL-embedding startup crash fix (#992, #993)
- Security batch (#966β#987): command injection fix, checksum abort, pinned-memory data-loss guard, UTF-8 panics, zero unsafe blocks, N+1 elimination, case-sensitive routes
- Branding refresh (#991) β "One memory. Every agent. Zero cloud."
- FTS5 indexes full document content body β every word searchable, not just titles (#783)
- RoomβDocument junction in CLI & MCP β
uteke room doc add/remove/list, 4 new MCP tools (#789) - Renamed MCP tool:
uteke_room_documentβuteke_room_summary_document(#735) - Windows PowerShell installer (
install.ps1) +.zipbinary release (#781) POST /memory/feedbacktrust scoring endpoint (#718)- Bug fixes: deprecated memory leak in vector search, doc search scope
POST /doc/move#[serde(deny_unknown_fields)]β silent data loss fix (#833)- Recall score reports cosine similarity instead of RRF rank (#831)
- MCP/CLI store mismatch β hardcoded
~/.utekepaths fixed (#830) POST /consolidateaccepts string threshold viaflex_f32(#826)- API route drift guard test β 46 handler paths verified (#829)
- Open-source governance docs β Code of Conduct, PR template, YAML issue forms (#834)
- Rust edition 2021 β 2024 β minimum Rust 1.85 (#755)
POST /room/rememberendpoint β store + link to room in one call (#762)DELETE /forgetreturns 404 for non-existent IDs (#762)- Clippy lints after edition upgrade
uteke onboardβ interactive onboarding wizard (#743)- API URL versioning
/api/v1and/api/v2(#741) - Configurable dream pipeline thresholds (#742)
SECURITY.mdand PR template (#746)- Deprecated memory leak in vector search fix (#748)
- Windows ERROR_LOCK_VIOLATION fix (#747)
- Embedding model streaming download (#740)
- Contributors: @webhop123, @gnoviawan
PUT /memoryβ partial memory updates with embedding regen (#676)- RoomβDocument junction table β schema v15 (#689)
- MemoryβDocument linking via
[[doc-slug]]wikilinks (#691) - Trust scoring β
uteke feedback helpful/unhelpful(#718) - Jaccard token similarity reranking (#719)
- Auto-contradiction scan as Dream pipeline Phase 4 (#720)
- Cross-entity enrichment in recall (
--enrich) (#703) - FTS5 indexes
memory_typeβ schema v14 (#662)
- Project-aware memory tagging (#616)
- OpenCode init support (#612)
- Maintenance HTTP endpoints β
/prune,/consolidate,/aging(#607) - Monitoring HTTP endpoints β
/importance,/orphans,/rebuild-backlinks(#608) - Extract/Import/Export HTTP endpoints (#604β#606)
- Document partial update CLI + HTTP (#589)
- MCP: pin/unpin, 6 room tools, tag management, doc update+move tools
uteke upgradecommand (renamed fromuteke update) (#603)- Documents now global β no namespace isolation, schema v13 (#614)
- #46 LLM fact extraction on import
β Doneuteke import --extractdistills noisy text into atomic facts
- Hermes memory-provider plugin
β Done- Automatic recall + extraction, no daemon required
- Configurable embedding endpoint path
β Done - Default max_seq_length 256 β 2048
β Done - Public
store()accessor for downstream cratesβ Done - rusqlite 0.31 β 0.40 upgrade
β Done
- Batch directory import (
--batch-dir)β Done- Auto-detection:
.mdβ document,.txt/.jsonlβ memory extraction --as-doc/--as-memoryoverride,--recursive,--dry-run
- Auto-detection:
- Cloud embedding fallback
β Done- Optional
[embed_fallback]config for cloud API failover - Dimension validation at startup
- Optional
- Mode C (shell hook) docs
β Done - Migration upgrade regression test
β Done - Schema migration fix (#492)
β Done
- Hierarchical documents β depth-10 tree engine
β Done - Hybrid document search (semantic + FTS5 + RRF)
β Done - MCP tools:
uteke_context,uteke_dreamβ Done - Auto-dream (3-day cycle) + configurable maintenance daemon
β Done - Dedup on insert (cosine β₯ 0.95) + pinned memory protection
β Done - Binary version mismatch fix, release workflow fixes
β Done
- #401 Cosine auto-linking + dedup
β Donesimilar_to(β₯0.80) andpossible_duplicate(β₯0.92) edges
- #404 Configurable limits
β Done- Env vars +
[limits]config section
- Env vars +
- #405 Markdown/prose chunker
β Done- Heading-aware splitting, code block protection
- #406 Document engine
β Done- Wiki/knowledge base, schema v11, documents + document_chunks
- #407 Embed-aware chunking
β Done- Chunk size from
embedder.max_seq_len()
- Chunk size from
- #408 /graph API endpoint
β Done- Nodes + edges JSON for visualization
- #409 View-only API key
β Done- Dual-role tokens (admin + read-only)
- #410 Hermes plugin room_remember
β Done - #411 Document CLI commands
β Doneuteke doc create/get/list/delete/export
- #337 OpenAI + Ollama embedding backends
β Done- reqwest-based HTTP backends, ONNX stays default
- #346 Typed auto-edges β self-wiring knowledge graph
β Done- Auto-wired memory edges on every
remember()
- Auto-wired memory edges on every
- #347 Timeline event tracking
β Done- Per-memory chronological audit log
- #348 Citation & source attribution
β Donesource,source_typecolumns (schema v10)
- #349 Memory type formalization
β Done- Typed categories with auto-inference
- #350 Backlink auto-generation
β Done- Bidirectional memory edges
- #351 Orphan detection
β Done- Find disconnected memories in the graph
- #352 Salience + recency dual-axis recall
β Done- Boost by memory type and age
- #353 Dream cycle
β Done- Coordinated maintenance pipeline (lint β backlinks β dedup β orphans)
- #381 MCP Streamable HTTP transport
β Done- Protocol version
2025-06-18,POST /mcpendpoint
- Protocol version
- #385 Hermes plugin auto-install
β Done- Direct install to
~/.hermes/plugins/uteke-tool/
- Direct install to
- #393
uteke room createcommandβ Done - #395 Room operations in Hermes plugin
β Done - #402 Fix: plugin missing
__init__.pyβ Done - #403 Fix: contradictory server log + DB size label
β Done
- #292 Time-travel queries
β Done- Recall/list at specific point in time (
--atflag) - Temporal validity filter: created_at, valid_from/valid_until, deprecated
- Recall/list at specific point in time (
- #249 Pluggable embedding models
β DoneEmbeddertrait abstraction for multiple backends- ONNX backend (default), future: OpenAI, Ollama
- #306 Room document view
β Done- Structured document output grouped by memory_type
- #305 Room summary
β Done- LLM-free room summary via tag clustering
- #304 Semantic room recall
β Donerecall_room_semantic()with--queryflag
- #184 Normalize tags junction table
β Done- Schema v5, memory_tags table, O(log n) lookups
- #252 Configurable recall threshold
β Done--min,--strict,[recall] min_scoreconfig
- #286 Room-based memory
β Done- Full room management with author attribution
- #181 Recall cache optimization
β Done- LRU cache with TTL,
--contextoutput format
- LRU cache with TTL,
- #246 Relationship graph
β Done--related --depth NBFS traversal
- #247 Smart memory decay
β Done- Composite importance scoring, pin/unpin
- #49 Benchmark suite
β Doneuteke benchcommand + LongMemEval retrieval harness
- #316 LongMemEval harness
β Done- Retrieval accuracy evaluation (Recall@k, NDCG@k)
- #185 Lazy ONNX model loading
- CLI cold start: ~3s β ~20ms for non-embedding commands
- Model loaded on first use (
remember,recall,search)
- #131 Modular CLI refactor
- CLI args extracted to
cli.rs, logging tologging.rs
- CLI args extracted to
- Release workflow decoupled: parallel builds + crates.io publish
- #134 Binary checksums & file permissions
- SHA256 checksum verification for ONNX model files
- Owner-only permissions (0700/0600) on database and model dirs
- #277 Indonesian README translation
- #100 TLS & Reverse Proxy docs
- Crates.io metadata in all Cargo.toml files
- #250 FTS5 hybrid search with RRF
- FTS5 full-text search as parallel retrieval channel
- Reciprocal Rank Fusion (k=60) merges vector + FTS5 results
- Schema migration v1βv2 (auto, zero data loss)
- #251 Metadata enrichment via CLI flags
--entity,--category,--meta key:value,...on remember
- #209 Concurrent reads via RwLock
Mutex<VectorIndex>βRwLock<VectorIndex>for read-heavy workload
- #139 Vector index consistency
- Atomic save for
.keyssidecar file (temp + rename)
- Atomic save for
- #187 Split commands.rs into per-command modules
- #186 Split store.rs into focused modules
- #178 Remove all Hermes branding
- #196 Address all Cora code review findings
- #130 Architecture: module split, #132 Input validation, #134 Binary checksums
- #138 Schema versioning, #144 Error handling rewrite
- Memory consolidation, import/export (JSONL)
- #317 SQLite graph storage β optional knowledge graph mode
- #245 Code-aware embedding with AST chunking β entity extraction from code
- #293 Structured memory β nested JSON content
- #46 Import from external knowledge sources
- #55 Hermes plugin β uteke integration