Roadmap
Demand-gated — we build what people actually use. Track progress on GitHub Issues.
v0.0.2 — Core Engine ✓ Done
- #40 Persistent vector index (usearch)
✓ Done - #39 Multi-agent namespaces
✓ Done - #38 Tiered memory (Hot/Warm/Cold)
✓ Done - #37 Health checks (doctor, verify, repair)
✓ Done - #53 Website (landing + docs)
✓ Done
v0.0.3 — Tag Management & Operations ✓ Done
- #42 Tag-based filtering and management
✓ Done - #44 Memory aging with auto-cleanup
✓ Done - #47 Shell hook for auto-context loading
✓ Done - #48 Configuration file (uteke.toml)
✓ Done - #31 Graceful shutdown (SIGINT handler)
✓ Done - #32 File logging with daily rotation
✓ Done - #41 Upgrade Node.js 20→24 in CI
✓ Done
v0.0.4 — Server Mode & Intelligence ✓ Done
- #43 Bulk memory operations (tag, cold, all)
✓ Done - #45 Namespace switching & defaults
✓ Done - #54 Daemon/server mode — warm recall <50ms
✓ Done - #54 CLI auto-routes to server (21ms recall)
✓ Done - #51 Auto-forget & temporal facts
✓ Done - #52 Consolidation & deduplication
✓ Done - #86 Cora AI code review in CI
✓ Done
v0.0.5 — Docker & Deployment ✓ Done
- #95 UTEKE_HOME env var for custom data directory
✓ Done - #96 uteke-serve reads uteke.toml, default host 0.0.0.0
✓ Done - #97 Dockerfile (multi-stage build, model baked in)
✓ Done - #99 Docker image build & push on release (GHCR)
✓ Done
v0.0.6 — Hardening & Fixes ✓ Done
- JSON output omits embedding vector (~3KB savings per memory)
✓ Done - import() now persists vector index (fixes data loss on restart)
✓ Done - Docker: non-root container with USER uteke
✓ Done - Dependabot: automated dependency updates
✓ Done
v0.0.7 — Core Stability ✓ Done
- #120 Tag queries: LIKE → json_each() for exact matching
✓ Done - #127 Configurable tier thresholds (hot_days, warm_days)
✓ Done - #129 Test coverage: 34 → 94 tests
✓ Done - Tag substring false positive fix ("rust" ≠ "rustacean")
✓ Done
v0.0.8 — Stability & Architecture ✓ Done
- #130 Architecture: module split (1471→352 lib.rs)
✓ Done - #132 Input validation (max 10K chars, 20 tags, 1MB payload)
✓ Done - #134 Binary checksums (SHA256) + verify-checksums subcommand
✓ Done - #138 Schema versioning + migration framework
✓ Done - #144 Error handling rewrite — sanitized user-friendly messages
✓ Done - #137 Python wrapper: 7→21 methods with type hints
✓ Done - #49 Memory benchmark binary (library-level timing)
✓ Done - Memory consolidation command
✓ Done - Import/Export (JSONL backup and restore)
✓ Done - #174 README overhaul + landing page refresh (GTM Phase 1+2)
✓ Done
v0.0.9 — Website Migration ✓ Done
- #194 Website migrated to VitePress
✓ Done- SvelteKit (3,750 LOC, 10 deps) → VitePress (1,300 LOC markdown, 2 deps)
- Built-in full-text search
- Build time: ~15s → ~6s
- Brand theme (amber/dark) preserved
v0.0.10 — Codebase Quality ✓ Done
- #187 Split commands.rs into per-command modules
✓ Done - #186 Split store.rs into focused modules
✓ Done - #178 Remove all Hermes branding
✓ Done - #196 Address all Cora code review findings
✓ Done - Safe slice for deprecated IDs
✓ Done - Index lock before SQLite write
✓ Done - HTTP status checking in server proxy
✓ Done - Aging cleanup filter fix
✓ Done - Schema migration transactions
✓ Done - Batch bulk deletes
✓ Done - SQLite-first dual-write
✓ Done - Embedding docs corrected (768d)
✓ Done - Shell hook idempotency guards
✓ Done
v0.0.12 — Search & Concurrency ✓ Done Current
- #250 FTS5 hybrid search with RRF
✓ Done- FTS5 full-text search as parallel retrieval channel
- Reciprocal Rank Fusion (k=60) merges vector + FTS5 results
RecallStrategyenum: hybrid (default), vector, fts5- Schema migration v1→v2 (auto, zero data loss)
- Phrase search + token-OR fallback
- Deprecated memories excluded from FTS5
- #251 Metadata enrichment via CLI flags
✓ Done--entity,--category,--meta key:value,...on remember- Post-filter on
recallandlistby entity/category - Auto type detection for meta values (string/number/bool)
- #209 Concurrent reads via RwLock
✓ DoneMutex<VectorIndex>→RwLock<VectorIndex>for read-heavy workload- Multiple concurrent recalls share read lock
- Embedder lock scope minimized
- #139 Vector index consistency
✓ Done- Atomic save for
.keyssidecar file (temp + rename) insert()andbuild()now returnResult(error propagation)- HashMap already used for key mapping
- Atomic save for
Phase A — Growth (100+ stars) Planned
Better embeddings, richer integrations, broader reach.
- Better embeddings (larger model option)
Planned - #46 Import from external knowledge sources
Planned - Python SDK (PyO3 bindings)
Planned - Editor integrations (VS Code, JetBrains)
Planned - Node.js SDK (NAPI)
Planned
Phase B — Collaboration (500+ stars) Future
Optional cloud sync, team features, and gateway integrations.
- Cloud sync (opt-in, end-to-end encrypted)
Future - Team collaboration & shared namespaces
Future - API gateway integration (LangChain, CrewAI, others)
Future - #100 TLS support & reverse proxy documentation
Future - #101 API key authentication for uteke-serve
Future
Phase C — Ecosystem (1000+ stars) Vision
Plugin ecosystem, advanced consolidation, community extensions.
- Plugin ecosystem (custom embedding, storage backends)
Vision - Advanced consolidation (cross-namespace, summarization)
Vision - Community extensions marketplace
Vision - Managed cloud API (optional paid tier)
Vision