-
-
Notifications
You must be signed in to change notification settings - Fork 2
Roadmap
Back to Home
This page tracks the milestones from the current research preview toward the 1.0.0 production release.
Design note: The district model is rooted in FractalSemantics addressing, where every entity inherits ancestry from a single anchor point called LUCA (Last Universal Common Ancestor). The five canonical districts are the five direct children of LUCA in the default schema. Custom districts in later milestones must declare a valid LUCA-derived address, making ancestry explicit and traceable rather than assumed.
The project is in active pre-1.0 development. All 0.x releases should be interpreted as:
- Ready for research, controlled pilots, and single-agent workflows.
- Not ready for production-scale, multi-tenant, or high-criticality deployments.
This position is intentional and consistent with semantic versioning conventions for 0.x software.
| Version | Date | Summary |
|---|---|---|
| v0.2.0 | 2026-04-01 | WAL persistence, concurrency safety, MCP error contract, loop telemetry, benchmarks, project_id scoping |
| v0.1.8 | 2026-03-28 | Docker Hub README auto-refresh via CI; Node 24 upgrade |
| v0.1.7 | 2026-03-28 | Fixed GIF/link rendering on Docker Hub and GHCR using absolute URLs |
| v0.1.6 | 2026-03-28 | Disabled immutable latest tag to fix Docker Hub publish failures |
| v0.1.5 | 2026-03-28 | Published to official MCP Registry (registry.modelcontextprotocol.io) |
| v0.1.3 | 2026-03-28 | Added GHCR publishing alongside Docker Hub |
| v0.1.2 | 2026-03-28 | Release pipeline hardening; rerun-safe npm publish |
| v0.1.1 | 2026-03-28 | Initial research preview release |
For full details see Release Notes.
Theme: Make the foundation trustworthy before building on it. Observe before acting.
Persistence Hardening ✅
- Replace single-file atomic write with a write-ahead log (WAL) pattern — append operations to a journal, compact on startup
- Implement crash recovery: detect incomplete writes on startup and roll back or replay from journal
- Add configurable memory cap with eviction policy options (LRU, access-frequency, or district-priority)
- Make storage path configurable via environment variable (currently hardcoded to
~/.neurodivergent-memory/)
Concurrency Safety ✅
- Implement an async write mutex to serialize all write operations — prevents data corruption when multiple tool calls arrive simultaneously
- Add write queue with backpressure signaling — callers receive a meaningful error rather than silent data loss under contention
- Document safe single-agent concurrency guarantees vs. known unsafe multi-agent scenarios
- Default WIP guardrail: limit
in_progressmemories to 1 peragent_idorsession_idinpractical_execution
Structured Logging & Error Taxonomy ✅
- Replace raw
console.log/console.errorwith a structured logger outputting JSON log lines - Define a stable error code taxonomy (
NM_E001throughNM_E0xx) — every failure path gets a code operators can reference programmatically - Distinguish recoverable vs. unrecoverable errors with appropriate severity levels
- All MCP tool error responses include: error code, human message, and suggested recovery action
Loop Telemetry (Observe Only) ✅
- Add repetition counters: detect when the same memory content is being written or re-read in rapid succession
- Add similarity scoring across recent writes to flag potential analysis-rumination patterns
- Add ping-pong detector: surface when two agents or two districts are exchanging the same memory without net-new information
- Telemetry is observability only at this stage — no behavior changes, just measurement and reporting
Performance Baseline ✅
- Add a benchmark suite: store throughput, BM25 search latency at 1k/5k/10k memories, graph traversal depth
- Publish benchmark results in the wiki as a regression baseline
- Document memory growth rate under typical agent workloads
Theme: Make the server aware of who is asking, why they are asking, and how to translate signal without losing it.
Distillation Layer (Emotional → Logical Translation)
- Add a first-class
distill_memorytool that translates aemotional_processingmemory into a structured logical artifact - Output shape:
signals,triggers,constraints,next_actions,risk_flags - Logical and planning agents consume distilled artifacts by default — not raw emotional narrative — preventing analysis-rumination loops
- Add
abstracted_frompointer on distilled memories linking back to the source emotional memory without exposing its full content - This implements selective abstraction, not hiding: the emotional signal is preserved, intensity is reduced, and the logical layer receives structured input
Loop Behavior Guardrails (Act on Telemetry)
- Building on v0.2.0 telemetry: add behavioral responses to detected loops
- "No net-new info" warning surfaced in tool response when repetition threshold is crossed
- Auto-suggest distillation step when
emotional_processingcontent is being repeatedly accessed bylogical_analysisagents - Optional cooldown on repetitive cross-district writes
Agent Identity
- Add optional
agent_idfield tostore_memory,connect_memories, andimport_memories - Each memory records which agent created it
-
memory_statsextended to report per-agent contribution breakdown - Enables future per-agent scoping, quota enforcement, and attribution
Goal-Aware & Contextual Retrieval
- Add optional
contextparameter tosearch_memoriesandrelated_to— a short string describing the agent's current goal - Context string is BM25-scored against memory content and blended into ranking — higher relevance to declared goal boosts score
- Add
recency_weightparameter tosearch_memories— bias retrieval toward recent vs. well-established memories - Add
min_intensity/max_intensityfilter tosearch_memories(emotional intensity filtering)
LUCA-Addressed Custom Districts
- Allow district names beyond the five canonical districts
- Custom districts must declare a LUCA-derived address — a valid ancestry path back to one of the five canonical districts
- Example:
project_build_pipelinedeclares parentpractical_execution, inheriting its position in the fractal hierarchy -
memory_statsextended with per-district breakdown including custom districts - Document the migration path for users adding project-specific districts
Theme: Make the server a coordination layer. Support both council-style and Kanban CLI agent workflows without either disrupting the other.
Session Scoping
- Add
session_idconcept — a logical grouping for memories belonging to a coordinated agent workflow -
import_memoriesextended to acceptsession_idfor bulk session initialization -
memory_statsextended with per-session breakdown - Add
list_sessionstool returning active session summaries
Council-Style Orchestration
- Per-agent write queues — agents don't block each other unnecessarily under concurrent load
- Optimistic conflict detection: if two agents write to the same memory node concurrently, surface a merge conflict rather than silently overwriting
- Merge resolution policy interface: last-write-wins as default, custom resolver as option
- Publish a reference implementation: two-agent council workflow coordinating through shared distilled memory
Kanban-Style CLI Agent Support
- Add optional
statusfield topractical_executionmemories:backlog | in_progress | blocked | done - Add
current_slicefield: one bite-sized next step (prevents TODO-bloat by keeping focus on the immediate action) - Add optional
why_nowfield: brief motivational or constraint anchor for context under cognitive load - WIP guardrail from v0.2.0 enforced here: cannot have more than 1
in_progressperagent_id/session_idby default - Done-quality gate: cannot mark
donewithout a completion note or acceptance criteria link - New tool:
kanban_view— returnspractical_executionmemories by status, filterable byagent_idorsession_id - New tool:
update_status— lightweight status transition tool (avoids fullupdate_memoryoverhead for task state changes)
Visibility & Knowledge Sharing
- Add
visibilityfield to memories:private(agent-scoped) |shared(session-scoped) |global(all agents) -
search_memoriesandretrieve_memoryrespect visibility scope - Add
share_memorytool: transitions a memory fromprivate→sharedorshared→globalwith provenance recorded -
abstracted_frompointer from v0.3.0 used as the bridge: shared/global distilled memories link back to private emotional sources
Theme: Everything a real operator needs to trust this in production at scale.
Durability Guarantees
- Full ACID semantics for individual memory writes — write not acknowledged until journal entry is fsynced
- WAL journal compaction to clean snapshot on configurable interval or size threshold
- Point-in-time recovery: restore from any valid journal checkpoint
- Documented backup and restore procedures
Performance at Scale
- Validated sub-second BM25 search at 100k+ memories (v0.2.0 benchmarks used as regression baseline)
- BM25 index persisted and incrementally updated rather than rebuilt on every startup
- Graph traversal depth limits enforced and configurable to prevent runaway queries
Multi-Tenant Isolation
- Namespace isolation: multiple tenants share a server process with fully isolated memory stores
- Per-tenant configurable memory caps and district schemas
- Tenant authentication via configurable auth provider interface (token-based minimum)
Stable API Contract
- All tools reach API stability — no breaking changes in 1.x without a major version bump
- Full JSON Schema documentation for every tool input/output
- MCP capability declaration updated to reflect stable feature set
Operational Runbooks
- Health check endpoint or MCP resource exposing server liveness and storage health
- Runbook: startup, shutdown, backup, restore, memory cap enforcement
- Runbook: upgrading from 0.x to 1.0 including data migration steps
- Documented compatibility matrix: supported MCP client versions
See also: Architecture · Release Notes · Getting Started · White Paper