-
-
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 (FractalStat) addressing, where every entity inherits ancestry from a single anchor point called LUCA (Last Universal Common Ancestor). These concepts are also used in Warbler-CDA and the seed. 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
- Project identifier support follow-through and adoption guidance.
- Distillation and contextual retrieval preparation for v0.3.0.
- Migration and operator UX improvements around import and storage diagnostics.
Theme: Make the server aware of who is asking, why they are asking, and how to translate signal without losing it.
- 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
- 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
- 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
- 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)
- 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
- Add explicit storage diagnostics surface so operators can see resolved snapshot path, WAL path, and effective environment source in one response
- Extend
import_memorieswith file-based mode (file_path) so clients can import server snapshots without expanding large payloads over MCP - Add
dry_runimport preflight that validates records and returns deterministic counts forwould_import,would_skip, andwould_fail - Add dedupe policies for import (
none | content_hash | content_plus_tags) and return dedupe reason codes for skipped rows - Define migration semantics for snapshot import (
preserve_idsandmerge_connectionspolicy flags) with explicit safety constraints and rejection behavior
Primary tracker: Issue #49 for file-path import support.
Theme: Make the server a coordination layer. Support both council-style and Kanban CLI agent workflows without either disrupting the other.
- 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
- 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
- Add optional filesystem lock coordination mode for shared snapshot directories when multiple server processes are active
- Emit lock contention telemetry and deterministic retry/backoff guidance in tool errors
- Provide explicit single-writer and multi-writer runbook profiles with recommended deployment defaults
- 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)
- 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.
- 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
- 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
- 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)
- 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
- 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
- Add a stable capability/introspection tool or resource so prompts and clients can distinguish tools, prompts, and enabled optional features at runtime
- Publish canonical client configuration profiles (
npx, Docker, hosted) with equivalent persistence behavior and verification checks
The following unresolved operator pain points are now mapped to execution targets in the approved plan:
-
v0.3.0
- Storage diagnostics visibility (resolved snapshot path, WAL path, env precedence)
- File-based import (
file_path) with backward-compatibleentriesmode - Import
dry_runpreflight with deterministic summary counts - Import dedupe policy support and stable skip reason codes
- Snapshot migration flags (
preserve_ids,merge_connections) with safety guards - Primary tracking: Issue #49
-
v0.4.0
- Cross-process write coordination mode and contention guidance for shared directories
-
v1.0.0
- Runtime capability/introspection contract
- Canonical client profile parity documentation
See also: Architecture · Release-Notes · Getting-Started · White-Paper