← reverie cerebral.work
project log · last updated 2026-07-09

reverie history

An honest record of how reverie came together — the first commit, the people who’ve shipped to it, and the inflection points that moved it from sketch to working system.

Origin

Reverie’s first commit landed on 2026-04-04 at 21:22 EDT. The initial scaffold was a two-crate workspace — a daemon skeleton and a benchmark harness — alongside a 36-ticket backlog organised across five milestones. Most of the architectural decisions that define the project today were already named in that backlog; the work since has been pulling them into a system that runs.

Reverie began as a ground-up Rust rewrite of Gentleman-Programming/engram — a Go memory daemon for AI coding agents — and has since transformed into a multi-paradigm memory management engine of its own, with a different data model, a different write path, and a different thesis about where knowledge belongs.

Who’s contributed

Four humans and one bot have made commits across all branches.

Author First commit Commits Role
Christian Todie 2026-04-04 599 Maintainer; primary author. About 86% of commits.
Aria Pramesi 2026-04-18 41 Contributor. Burst of work in mid-April; ongoing.
Dennis Myshkovskiy 2026-04-21 36 Contributor. Primary author of the dreamcode Zed fork; contributing to reverie core since April.
Patrick Gray 2026-04-18 1 Single-commit contributor.
dependabot[bot] 21 Automation; dependency-update PRs.

Inflection points

A short list of the moments where the project got meaningfully more capable, or meaningfully more honest about what it was. Drawn from the changelog and the conventional feat: commits between releases.

```html ``` ```html ``` ```html ``` ```html ``` ```html ```
DateWhat changed
2026-04-04 First commit. Daemon skeleton, benchmark harness, and a 36-ticket backlog naming the whole system before any of it existed. The shape we are still building toward.
2026-04-10 v0.3 — multi-factor scoring. Retrieval stops being a single-axis sort. Eight factors — semantic, lexical, recency, resonance, importance, session spread, hippocampal weighting, valence — combine into a ranked result. The first version where the scoring code looks like the architecture diagrams.
2026-04-15 v0.4 — graph execution. The planner gains conditional routing with cycle guards, flatline detection, and a fan-out queue for parallel work. The point at which reverie’s mesh starts looking like a runtime, not a script.
2026-04-16 v0.6 — domain model + dream pipeline v2. The store gets a real type system (five traits, a chunk metadata value object, explicit consolidation states), and the consolidation pipeline lands as a structured journal rather than a script. The moment the codebase starts pushing back when you try to do the wrong thing.
2026-04-17 v0.8 — hybrid search v2. Lexical, dense, sparse, and rerank fused into a single retrieval endpoint. MRR climbs to 0.657 on 812 questions. The numbers stop being a research curiosity and start being a competitive baseline.
2026-04-17 v0.9 — pseudo-agent epic. Reverie gains the ability to act on its own observations — a small, sandboxed agent with a four-tier permission model and a pinned router prompt. The first time the daemon writes back to the world rather than just watching it.
2026-04-17 v0.9.3 — contradiction detection. When two observations disagree, both sides get tagged and the conflict feeds the next consolidation pass. Old beliefs are kept, not overwritten, until something newer earns precedence.
2026-04-18 v0.9.5 — multi-user foundation. A Postgres backend with row-level security, team primitives, and a SQLite-to-Postgres migration path. The shape that lets more than one person share a memory layer without trampling each other.
2026-04-18 v0.9.7 — coord migration + hybrid search. coord moves from filesystem to Redis-primary (protocol v1.2). FTS5 keyword + sqlite-vec (BGE-large 1024d) + literal token-coverage fused with RRF k=30: MRR 0.628 on 812 questions, R@5 77.0%. The learned-intelligence foundation lands alongside it — access forecasting, Ebbinghaus decay models, attention weights.
2026-05-27 v0.9.13 — MCP surface + dream output wiring. Native MCP surface expands to six tools: search_memory, smart_context, add_observation, add_observation_passive, dream_status, dream_last_report. ObsidianAdapter wired into dream sync. Mesh worker HTTP endpoints (/v1/workers/*) ship. Literal token-coverage signal added to hybrid scoring, moving single-hop MRR delta from −0.378 to −0.167.
2026-06-03 v0.9.14 — Substrate tenancy + urgent ops. Completes Phase 2 dream-phase tenancy with orphan garbage collection and Phase 3 view=substrate API surface with origin-aware ranking. Adds observability to dream cycle in-progress phases and fixes CI disk-space failures that were blocking release automation. The point at which the v1.0.0 substrate-tenancy gate moves from blocked to unblocked.
2026-06-10 v0.10.12 — Domain graph: routing (neuroscience-weighted spreading activation). Completes Phase C of domain-graph categorization substrate with chunk_id→observation_id resolver (C0) and empirical routing-spike gate (C-SPIKE) gating C1+. Spreading-activation routing module seeded by 9-factor scorer; dream edge-trainer and routed_context surface now consumed by Context Lens. The first time domain-graph routing moves beyond categorical metadata into active signal propagation.
2026-06-10 v0.10.11 — Domain graph: edge surface. Completes Phase B of domain-graph categorization with typed entity↔entity edges (EntityEdge/EdgeKind) and weighted Hebbian obs↔obs associative edges using discrete decay and degree caps. CA3 AssociativeRecall façade inverts distance to similarity; entity-row persistence wiring (B1-pre) lands. The first time the domain graph becomes navigable by relation, not just by entity.
2026-06-10 v0.10.10 — Domain graph: node surface. Ships Phase A of domain-graph categorization substrate with typed two-level taxonomy (DomainCategory + domain_category column), closed-schema TagFacet value-types, ChunkMetadata activation fields, and VectorHandle—completing the first vertical (domain → store → ingest). Byte-parity preserved; schema design documented in cerebral-work/reverie#560. Builds on v0.10.1 domain-normalization work and establishes the foundation that v0.17.0 value-types will expand. The first time the domain graph surface becomes queryable by category and type.
2026-06-10 v0.10.0 — Audit-driven cleanup. Executes Tier 0–3 remediation from the 2026-05-22 code-grounded audit: removes unused hexagonal port traits in reverie-domain/traits.rs; consolidates EngramCompatStore (377 imports across 55 files) into a single canonical location; deduplicates core types (Observation, Session, Chunk) scattered across 9 crates. Reduces import surface and strengthens module boundaries ahead of substrate tenancy stabilization. The moment the codebase became honest about what it actually uses.
2026-06-13 v0.10.3 — Dependency direction & crate coverage. Enforces acyclic dependency graph across 12 crates via cargo-deny and layer-based import rules; eliminates reverse dependencies that violated the domain → store → ingest hierarchy established in v0.10.10. Adds coverage instrumentation to ChunkMetadata and VectorHandle codepaths, exposing 14% untested error paths in ingest-layer serialization. The moment the build graph stopped lying about its actual shape.

Future work

Milestones in progress or queued, drawn from Linear. Updated automatically.

VersionTargetWhat’s planned

Where it stands

License

Proprietary (© 2026 Christian M. Todie / cerebral.work). All rights reserved. The source repository is private; reverie has not been released under any other license. For commercial licensing, embedded use, or evaluation access: licensing@cerebral.work.

← back to reverie Get in touch