Skip to content

Releases: OnourImpram/mneme

v3.6.3

Choose a tag to compare

@github-actions github-actions released this 27 Jul 20:09
13efb7f

What's Changed

Full Changelog: v3.6.2...v3.6.3

v3.6.2 — mneme Record

Choose a tag to compare

@OnourImpram OnourImpram released this 26 Jul 14:33
fdb0b50

This release publishes two things that were finished but never shipped, because the 3.6.1 tag was cut before they landed.

The display name

The MCP Registry returns four distinct things for the word "mneme":

  • this project
  • the retired entry under the account's former handle — still active, still isLatest inside its own namespace, frozen at 3.5.0
  • patsa2561-art/mneme-ai, fifteen versions, actively maintained, roughly sixteen times this project's npm downloads
  • simplemindedbot/mnemex

Someone searching that word cannot tell which one they are looking at. server.json has carried title: "mneme Record" since the identity change, but the registry kept serving title: "mneme" at 3.6.1. This release moves the name the registry actually shows.

Display only. The registry name is unchanged, so no second entry is created and the namespace is not re-litigated. Package names, the CLI command, and the config directory are untouched — nothing you have installed or scripted breaks.

CITATION.cff deliberately stays mneme. The academic surface is bound to a DOI and an ORCID where the bare word cannot collide, and changing the citation title would split the scholarly record across versions.

The README

It now opens with the problem mneme solves rather than the backends it does not use, and documents all nine MCP tools under a ## Tools heading. That heading exists because directory tooling could not detect the tool list.

The scope-and-limits disclosures did not shrink. They moved below the first screen.

Also

  • The 3.6.1 changelog entry corrected to record 3.5.0 as the last version published under the retired namespace.
  • Seven npm dependencies updated.

Verification

30 CI checks green, including seven release benchmarks, CodeQL for JavaScript/TypeScript and Python, the Neo4j knowledge-graph integration, and the Node 22/24 and Python 3.11–3.14 matrices across Linux, macOS and Windows. Version lockstep reports matches_target across all 18 sources; repository integrity passes.

What's Changed

  • docs(changelog): correct the last version published to the retired namespace by @OnourImpram in #39
  • chore(deps): bump the npm-all group across 1 directory with 7 updates by @dependabot[bot] in #28
  • Lead the README with the problem, not the caveats by @OnourImpram in #40
  • Display name becomes "mneme Record" by @OnourImpram in #41
  • release: v3.6.2 — publish the display name and the README rework by @OnourImpram in #42

Full Changelog: v3.6.1...v3.6.2

v3.6.1

Choose a tag to compare

@github-actions github-actions released this 25 Jul 20:18
fce5329

What's Changed

  • fix(registry): publish the MCP server under the current GitHub namespace (3.6.1) by @OnourImpram in #38

Full Changelog: v3.6.0...v3.6.1

v3.6.0 — ten-loop engine, scoped isolation, deterministic temporal planner

Choose a tag to compare

@OnourImpram OnourImpram released this 25 Jul 18:37
828ac47

Memory you can inspect, now with scope isolation you can prove.

Added

  • mneme doctor --verify-isolation runs scope and redaction checks against an isolated temporary fixture, without reading or changing your vault.
  • mneme_checkpoint_list and mneme_working_set_load take an optional scope and fall back to the configured default.
  • A deterministic release-candidate benchmark gate reporting retrieval quality, latency, index build time, index size, memory, backend contribution, and ablations. LongMemEval and LoCoMo adapters validate against pinned official schemas.
  • Claude, Codex, and Antigravity plugin validators now run with repository integrity and package candidate checks.

Changed

  • All nine MCP schemas derive from the authoritative Zod contracts and are checked against runtime acceptance. Unknown fields stay accepted and discarded for compatibility.
  • Concrete scope reads fail closed against legacy unscoped FTS5 indexes and ask for a rebuild. Exact scope: "*" remains the only cross-scope read opt-in; durable writes reject it.
  • Turkish FTS5 retrieval preserves distinct I, i, U+0130, and U+0131 normalization through dual indexed forms.
  • Temporal queries apply valid time and transaction time through a deterministic planner. Supersession, contradiction, CCE checkpoints, KG staging, and Graphiti group identifiers are scope isolated.
  • Retrieval telemetry records attempted, succeeded, failed, and contributed backend states separately, with separate per-vault keyed HMAC query identifiers for Python and TypeScript.
  • RRF deduplicates canonical document paths, retains provenance and confidence, and gives the canonical AMBIGUOUS label precedence when any contributing backend reports ambiguity.
  • The release workflow publishes only from a tag push, consuming the exact bytes produced by one verified preflight job.

Availability

mneme-mcp-server@3.6.0 is on npm.

The PyPI distributions (mneme-core, mneme-cc-plugin, mneme-graph, mneme-code) are still at 3.5.0 for this tag: the GitHub account was renamed, which invalidated the PyPI trusted-publisher claims, and the MCP Registry entry likewise still points at the previous namespace. Both are being reissued. Until then, install from source or stay on 3.5.0 for the Python packages.

Verification

30 required checks green: CI across three operating systems on Node 22/24 and Python 3.11 through 3.14, CodeQL, six benchmarks (nDCG@5, latency, adaptive context, migration, head-to-head, compaction recall), and Neo4j knowledge-graph integration.

v3.5.0

Choose a tag to compare

@github-actions github-actions released this 30 Jun 08:57
2a90c10

What's Changed

  • build(deps): adopt npm-all major bumps (vitest 4 + vite 6, zod 4, biome 2, TS 6, neo4j 6) and fix breakages by @TheGoatPsy in #13
  • chore(deps): bump the pip-all group across 1 directory with 2 updates by @dependabot[bot] in #10
  • docs: add claude-obsidian competitor entry + autonomous-research seam ADR by @TheGoatPsy in #14
  • docs(benchmarks): reconcile Benchmark A table with CI-enforced baseline.json by @TheGoatPsy in #15
  • test(cc-plugin): warm up before timing the full-profile Stop latency assertion by @TheGoatPsy in #16
  • chore: de-flake two Windows CI tests, drop unrequested Glama badge, isolate Dependabot majors by @TheGoatPsy in #20
  • chore(deps): bump the npm-all group across 1 directory with 3 updates by @dependabot[bot] in #21
  • ci: bump actions/checkout from v6 to v7 by @TheGoatPsy in #22
  • build(deps): adopt vite 8 and @types/node 26 in mneme-mcp by @TheGoatPsy in #23
  • feat(mneme-graph): Obsidian knowledge-graph extraction, clustering, retrieval by @TheGoatPsy in #24
  • feat: release 3.5.0 - multi-scope isolation, security hardening, integrity by @TheGoatPsy in #25

New Contributors

Full Changelog: v3.2.0...v3.5.0

v3.2.0

Choose a tag to compare

@github-actions github-actions released this 14 Jun 18:54

Full Changelog: v3.1.0...v3.2.0

v3.1.0

Choose a tag to compare

@github-actions github-actions released this 12 Jun 15:50

mneme 3.1.0

Vault-native memory for Claude Code. Also runs in OpenAI Codex CLI, Google Antigravity, and any MCP client. Markdown is ground truth.

License: Apache-2.0. Single maintainer: Onour Impram.


Install

Lite (recommended first install):

pipx install mneme-cc-plugin && mneme install --profile=lite

Standard (adds opt-in local dense retrieval, enable with --enable-dense):

mneme install --profile=standard

Full (gated Graphiti temporal KG, requires Docker and Neo4j):

mneme install --profile=full

Verify:

mneme doctor

Codex CLI:

mneme install --client=codex

Google Antigravity:

mneme install --client=antigravity

Published packages

All packages are at 3.1.0.

PyPI: mneme-core, mneme-cc-plugin, mneme-graph (first release), mneme-code (first release).

npm: mneme-mcp-server 3.1.0, MCP name io.github.TheGoatPsy/mneme.

MCP Registry: entry io.github.TheGoatPsy/mneme is live.


What is in this release

Security

The team-sync web console now refuses requests whose Host header is not a loopback alias. This closes a DNS-rebinding read path. The bind guard can be disabled with --unsafe-expose for intentional non-loopback exposure.

New

  • team-sync trust-marks every imported file with source, trust level, and a SHA-256 payload hash, and redacts on arrival. Re-pulls are idempotent.
  • mneme memory policy init scaffolds a documented zero-autonomy policy.json. It never overwrites an existing file. mneme memory policy validate surfaces dropped or misspelled class names.
  • docs/UPGRADING.md covers the 2.x to 3.x migration path, with five new cookbook recipes.
  • mneme-graph and mneme-code join the release train with their first PyPI publishes.
  • server.json is tracked at the repo root. MCP Registry auto-publish runs via GitHub OIDC.
  • Dependabot and CodeQL workflows are now active.

Changed

  • CI tests Python 3.14 alongside 3.11 through 3.13.
  • Dev Status classifiers: mneme-core and mneme-cc-plugin are now Production/Stable. mneme-graph and mneme-code are Beta.
  • Governance documents the interim single-maintainer release rule and a best-effort security response posture.

Architecture notes

Store. Memory lives in a directory of plain Markdown files you can git diff, grep, edit, and back up. The SQLite index is a rebuildable artifact.

Stop hook. Appends a typed session document with no LLM call, no API key, no cost, and no added latency. Background AI compression is opt-in, default off, with a monthly cost cap.

Retrieval. FTS5 BM25 is the default. A local hashing-embedding dense backend is shipped as an opt-in, RRF-fused with BM25 when enabled via --enable-dense. A heavyweight LEANN/sentence-transformers adapter is on the roadmap, not yet shipped.

Temporal claims. Valid-from/to, supersedes chains, as-of queries, contradiction detection, and provenance time-travel are built in on every profile, in pure SQLite. Graphiti export and LLM claim extraction are optional additions.

Privacy. Inline <private> tag redaction happens at staging write with a SHA-256 audit log. No outbound network traffic occurs except for the opted-in compression LLM and an optional local Neo4j instance.

Token efficiency. Shell output compression, injection deduplication, adaptive top-k, and three injection format levels combine to reduce session token consumption, measured at 40 to 60 percent on the project's synthetic regression corpus.

Agent security. Capability firewall, data-flow taint tracking, human-approval gate for durable edits, and a poisoned-vault benchmark are included.

Domain privacy modes. Clinical and security-review modes block external extraction and artifact upload. A mode can never weaken a built-in privacy guarantee or disable redaction.

Policy-graduated autonomy. The agent applies operator-allowed low-risk edit classes itself. Every change is journalled for one-command rollback and chained into a tamper-evident HMAC audit log. Durable categories always require a human in the loop.

Team memory. Self-hosted over any git remote, with optional age end-to-end encryption and a loopback-only read-only web console. This is not a vendor cloud service.

Migration. One-command lossless migration from claude-mem is included.

Plugin surface. Five lifecycle hooks, two skills, and an MCP server (seven MCP tools) for Claude Code.


Regression benchmarks

These numbers are deterministic anchors on a seeded synthetic corpus (MNEME_BENCH_SEED=42). They are not real-world quality measurements. See ADR-012. Reproduce with make bench-all.

  • Retrieval nDCG@5, RRF-fused: 0.893 (FTS5 baseline 0.801, +9.2 points). 500-document corpus.
  • Stop hook p95 latency: 2 ms (budget 1000 ms). Retrieve p95: 3 ms on a 500-document index.
  • Shell output compression: 88 percent. Injection dedup skip rate: 95 percent.
  • Migration tool: 4 of 4 assertions pass.
  • Adapter leg nDCG@5: 0.831, MRR 0.772 on a 300-document fixture. This is a synthetic adapter leg only, not a real run against any external tool. A real-data head-to-head comparison is future work.

Full Changelog: v3.0.1...v3.1.0

Repo: https://github.com/TheGoatPsy/mneme

v3.0.1

Choose a tag to compare

@github-actions github-actions released this 12 Jun 11:55

What's Changed

  • [ImgBot] Optimize images by @imgbot[bot] in #1

New Contributors

  • @imgbot[bot] made their first contribution in #1

Full Changelog: v3.0.0...v3.0.1

v3.0.0

Choose a tag to compare

@github-actions github-actions released this 12 Jun 09:41

Full Changelog: v2.0.2...v3.0.0

mneme 2.0.2

Choose a tag to compare

@OnourImpram OnourImpram released this 05 Jun 06:19

Patch release. Corrects the package metadata so mneme is listed on the official MCP Registry as io.github.TheGoatPsy/mneme. The npm MCP server package now carries the registry mcpName, and the registry namespace casing matches the GitHub owner. No functional changes from 2.0.0. Install: pipx install mneme-cc-plugin and mneme install, or pip install mneme-core, or npm install -g mneme-mcp-server.