Releases: GoVanAI/mem-graph
Release list
v0.3.0 - Cognitive OS agent practice
v0.3.0 — Cognitive OS agent practice
Feature release building on v0.2.1. The existing memory and graph tools remain
available; the Cognitive OS schema and MCP surfaces are additive.
Highlights
- Eight Cognitive OS tools, bringing the complete MCP surface to 35 tools.
- Immutable, hash-linked evidence events with scoped correlation, causation,
and idempotency support. - Candidate-policy creation, lookup, and evaluation without automatic
promotion or authority expansion. - Governing and contextual current-guidance lanes plus a non-mutating
diagnostic surface. - A strictly read-only
cognitive_agent_bootstrapthat resolves project scope,
snapshots requested canonical records, and returns policy and guidance
candidates without appending events or touching access counters. - A portable agent-practice contract with generated Codex, Claude, Gemini, and
vendor-neutral adapters, deterministic compliance grading, and an optional
MiniMax review path. - Updated cross-client setup documentation and a portable Windows launcher.
Safety boundaries
- Retrieval rank and governing eligibility do not establish authority.
- Candidate policies remain advisory and cannot broaden permissions.
_globalguidance stays excluded unless explicitly requested.- Hook-driven candidate detection and hard enforcement remain disabled.
Verification
- 16 test files / 167 tests passed.
npx tsc --noEmitpassed.- Generated agent-practice adapters passed freshness checks.
- Focused agent-practice tests passed.
- The frozen coverage harness reproduced deterministic baseline and treatment
results.
Upgrade
Pull or download v0.3.0, run npm install, and restart the MCP server. Existing
memory databases are retained; the Cognitive OS tables are initialized
additively when the server starts.
v0.2.1 — bugfix release
v0.2.1 — bugfix release
Drop-in upgrade from v0.2.0. No schema changes, no breaking API changes.
Bug fixes
memory_synapse_traverse returned [] despite wikilink synapses existing.
The MCP tool wrapper for synapse traversal had a SQL parameter-binding bug: it built params as [min_weight, connection_type, id, limit] while the SQL's ? placeholders appear in order [JOIN.source_id, WHERE.weight, WHERE.connection_type, LIMIT]. With default min_weight=0, the JOIN's source_id placeholder got bound to 0 — filtering every synapse to source_id=0, which matches nothing.
This broke any client that relied on synapse traversal, including evidence-counting procedures in the reflection skill.
Fix: Extracted runSynapseTraverse helper into src/access.ts with explicit, ordered param binding (JOIN placeholders first, WHERE next, LIMIT last). Refactored memory_synapse_traverse MCP handler to delegate to the helper.
Decay's access-based exemption was dead code.
synapses.access_count was effectively never written. Only memory_get(include_synapses=true) bumped it; every other retrieval path left the counter at 0. Decay's exemption logic (>3 mid-exempt, >10 hot-exempt thresholds) was unreachable. Verified pre-fix: 0 of 378 synapses crossed the >10 threshold.
Fix: Extracted bumpMemoryAccess + bumpSynapseAccess helpers into src/access.ts. Wired into runActivate (result-set neighborhood) and memory_get (unconditional). Critical constraint preserved: synapses.updated_at is not touched on access — preserves the "slow-fading glory" semantic.
Stats
- Tests: 121 → 138 (+17)
- Files changed: 10
- Insertions: +792 / deletions: −55
🤖 Generated with Claude Code
v0.2.0 - Initial public release
v0.2.0 — Initial public release
Solo learning build exploring graph-relational memory as an MCP substrate. This is the first public commit.
What's in this release
- 27 MCP tools across 6 groups (SQL, Orient, Search, Write, Graph, Import)
- 108 vitest tests across 9 files, ~500ms total runtime
- Layered memory model: 5 layers (working, episodic, procedural, semantic, partner) with layer-aware synaptic decay
- Graph layer:
[[wikilink]]syntax, BM25 auto-linking, spreading activation, decay matrix with access-based exemption - SQLite substrate (better-sqlite3 + FTS5, porter stemmer, 2/3-char prefix)
- One-shot v1 to v2 migration tool (
memory_import_from_mem_sol)
Schema at a glance
memories— relational layer with summary, confidence, boost, lifecycle, importancesynapses— graph edges, 3 connection types (wikilink, bm25_auto, parent_child), weights 0.0 to 5.0memory_tag— junction table (no JSON tags)memories_fts— FTS5 mirror kept in sync by triggersdecay_matrix— per layer-pair + connection-type decay rates, wildcard fallback
Bootstrap
On first launch into an empty DB, 4 bootstrap entries document purpose, design philosophy, schema reference, and an example wikilink exercise. Searchable via memory_search after install.
Install
Clone the repo, install deps, and start the server locally:
git clone https://github.com/GoVanAI/mem-graph
cd mem-graph
npm install
npm startSee the README's Install section for the MCP client registration snippet (Claude Code, opencode, or any MCP-compatible client).
Not in scope (yet)
- Production hardening or peer-validated benchmarks
- Plugin marketplace wrapping (MCP server only)
- Auto-link-on-read semantics (write-time BM25 only)
- cwd to project binding
- Entry versioning beyond the basic
memory_supersedetool
License
MIT - Copyright (c) 2026 GoVanAI