Skip to the content.

Oracle Roadmap: v0.6.0

Theme: Memory Engine Foundation — Retire JSON, Adopt SQLite + Hybrid Retrieval

Why: v0.1–v0.5 completed the "multi-agent + human oversight" stack. But Memory (pillar #1 in README) is the slowest part of the codebase. Vector search is O(n) linear scan in RAM, BM25 exists but unused, embedding provider is hardcoded to Ollama with silent failures, and we have no eval to prove we actually got better. This debt compounds every release.

Outcome: Move memory from JSON files to SQLite (schema v7), hybrid retrieval (BM25 + vector via RRF fusion), pluggable embedding providers, and measurable recall improvements.


Primary Work: Memory Engine (4 items)

1. Vector Search: RAM → SQLite + sqlite-vec

Current problem: src/memory/vectorStore.ts:20 loads entire vectors.json into array, then search() runs O(n) cosine against every record per query. At 50k memories = 50k cosine ops per recall. Plus save() at line 43 does void this.save() (no await) — parallel writes from multiple agents cause lost-write races, which is the use case for this project.

Fix: Migrate to SQLite schema v7 with embeddings BLOB + sqlite-vec extension

Acceptance: Exact same search results as before (same vectors), but <100ms p99 for 50k-memory query (was: >500ms sometimes)


2. Hybrid Retrieval: BM25 + Vector Fusion

Current problem: src/docs/bm25.ts exists but memory doesn't use it. adapter.ts:261 implements custom lexicalScore() only. Semantic/lexical are either/or: if vector succeeds at line 252, return immediately — lexical never runs.

Fix:

Acceptance: Hybrid queries return both keyword and semantic matches ranked together; pure-keyword topics get found even if embedder is down


3. Embedding Providers: Pluggable Interface

Current problem: src/memory/ollama.ts (38 lines) hardcodes Ollama. If the machine has no Ollama, embedding fails silently — adapter.ts:39 does if (!emb) return; and falls back to keyword match without telling the user.

Fix:

Acceptance: oracle doctor correctly reports embedding status; switching providers is config, not code


4. Eval Harness: Prove Recall Got Better

Current problem: README claims "ranked by relevance" but there is no eval. Releasing v0.6.0 is just a features list — unverified.

Fix:

Acceptance: Release notes say "recall@5: 78% → 94%" (or whatever the numbers are) — concrete, not aspirational


Separable: CI + TLS (ship independently)

CI Pipeline

TLS for Remote Swarm

Both are orthogonal to Memory Engine; can merge independently.


Defer to v0.7.0


Context: Version Themes

Ver Theme Status
0.1 Coordination ✓ Complete
0.2 Runtime (daemon + SQLite) ✓ Complete (schema v6)
0.3 Control Center ✓ Complete
0.4 Human Control Plane (approval + audit) ✓ Complete
0.5 Remote Swarm (cross-machine agents) ✓ Complete
0.6 Memory Engine → Start here

v0.1–v0.5 built the orchestration layer. v0.6 pays down the biggest technical debt and makes the #1 pillar (Remember) match the marketing.

Separable Work: CI/TLS

These can be merged independently; no memory-engine dependency:

Both are nice-to-haves for v0.6.0; can ship in patch releases or v0.7.0 without blocking.

Deferred to v0.7.0

Migration & Breaking Changes

None. v0.6.0 is purely additive:

Testing & Verification

Success Metrics


Next: Start with Memory Engine implementation (find → ranking → entity graph → consolidation). CI/TLS can run in parallel.