Optimistic locking for memory files
Add file versions and expectedVersion writes so concurrent agents can detect conflicts instead of silently last-write-wins on high-value memory files.
This roadmap is directional, not a promise board. Register interest, leave a note about your use case, or schedule time with the founder if your product has a real memory problem today.
These are the features most closely tied to operating durable user memory once real usage starts accumulating.
Add file versions and expectedVersion writes so concurrent agents can detect conflicts instead of silently last-write-wins on high-value memory files.
Move beyond manual revision pruning with configurable retention for mx_revision and mx_access_log, including admin UI controls for teams that need bounded storage growth.
Track daily background consolidation spend per user and skip dream cycles once the configured budget is exhausted.
Let operators mark sensitive or hand-curated memory files as excluded from background dreaming without relying only on global path rules.
Pass a raw_data argument to memory_write and MemexAI stores the payload directly to Postgres without routing it through the model context window — ideal for bulk transcripts, documents, or structured data. memory_memorize gains a sidecar path: after its reasoning pass it issues a direct write to the designated target without re-injecting the full content into the LLM turn.
Redact, block, or review sensitive memory before writes land in service mode or direct Postgres mode.
Trigger webhooks after memory changes so Slack, n8n, Zapier, app events, and audit stores can stay in sync.
Let agents propose updates to shared memory while admins review, accept, reject, or auto-approve contributions.
Some teams need richer retrieval, broader isolation boundaries, or background synthesis. Tell us which of these would change your roadmap.
Register additional memory scopes at init time. A team agent writes to team/itinerary.md and user/prefs.md simultaneously — both isolated, both in the same call. No migration needed.
Run BM25 and vector search in parallel, then combine results with Reciprocal Rank Fusion. Queries like "user prefers greenery" find memories written as "loves parks and open space" — no keyword overlap needed. BM25 results are preserved, not replaced. The embedding function is injected at init so there is no hard dependency on any provider. Falls back to BM25-only if no embed function is configured.
Attach a confidence score (0–1) and source type (explicit, inferred, consolidated) to each memory file. Explicitly stated facts outrank agent-inferred ones. The dream consolidation job propagates confidence through merges and can downgrade contradicted memories rather than deleting them. Ranking in search and smart_read multiplies by confidence — stale or uncertain memories fade, high-signal ones stay front-of-mind.
Track where facts came from and organize durable memory by app events, documents, projects, and conversations.
Index memory links as a precomputed backlink graph. memory_smart_read today only follows links forward — with reverse traversal, seeding on a hub file also surfaces the most recent notes that reference it (visit logs, chat summaries, corrections). Files with many inbound references rank higher in search. Hub files become self-enriching context anchors instead of static snapshots.
Background dreaming now handles the cleanup work that used to sit behind separate memory health and compaction roadmap items. We may still add sharper diagnostics later, but the default product direction is to solve these through automatic consolidation.
Shipped as opt-in service-mode consolidation. Dreaming waits for quiet memory, merges duplicates, clarifies fragmented notes, resolves direct contradictions, and writes normal revisions as dream-agent.
Operators can read dream config, update cadence and write budgets, inspect per-user dream status, and pause or resume dreaming for specific users.
Dream runs skip log files, avoid no-op dream-log entries, record files_touched, and preserve the same revision/access-log trail as normal memory writes.
De-prioritized as a standalone roadmap item because dreaming now covers the highest-value health work: duplicates, stale contradictions, fragmented notes, and low-signal cleanup between sessions.
De-prioritized as a separate feature because dreaming already summarizes, deduplicates, and keeps long-running memory files readable while preserving revisions as the original trail.
A short founder call is the fastest way to map your current memory approach, the retention pain, and whether MemexAI should fit now or later.
Roadmap votes are product signal, not commitments. We use them to prioritize conversations and choose what to make legible, durable, and self-hostable next.