← reverie cerebral.work
project log · last updated 2026-08-10

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

Seven humans and four bots have made commits across all branches.

Author First commit Commits Role
Christian Todie 2026-04-04 958 Maintainer; primary author. ~92% of commits across three email identities.
Aria Pramesi 2026-04-18 260 Contributor. Burst of work in mid-April; ongoing.
Dennis Myshkovskiy 2026-04-21 38 Contributor. Primary author of the dreamcode Zed fork; contributing to reverie core since April.
Courtney Richardson 2026-07-11 10 Contributor.
Kimberley Yoo 2026-07-01 2 Contributor.
Patrick Gray 2026-04-18 2 Minor contributor.
geosmin 2026-05-07 1 Single-commit contributor.
dependabot[bot] 44 Automation; dependency-update PRs.
github-actions[bot] 10 Automation; release and CI workflows.

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.

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

Sync paused. Future milestones are temporarily unpublished while the Linear-to-site automation is repaired. New entries will return only through a validated, review-gated pull request.

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: [email protected].

← back to reverie Get in touch