Release Notes v3.0.0 7 min read

MemPalace v3.0.0 Release Notes — Every Feature Explained

A thorough walkthrough of every feature in the MemPalace v3.0.0 release — the complete MCP server, temporal knowledge graph, specialist agent diaries, Claude Code hooks, three mining modes, and the AAAK compression layer.

You Are Reading v3.0.0 Notes The current stable release is v3.1.0, which patches Windows encoding errors (Issue #47), pins ChromaDB to a tested version range (Issue #100), resolves a shell injection in the save hooks (Issue #110), and improves multilingual search support (Issue #50). Download v3.1.0 →

Release Overview

MemPalace v3.0.0 marked the first public release of the project, published on April 6, 2026 after several months of development. The release is production-ready, not an alpha or beta. Its defining achievement is 96.6% R@5 on the LongMemEval benchmark using only ChromaDB on your local machine — no API key, no cloud service, no ongoing cost. That score was independently reproduced by a community member on an M2 Ultra Mac in under five minutes.

The release ships five interconnected systems: a full MCP server, a temporal knowledge graph, specialist agent support, auto-save hooks for Claude Code, and the AAAK compression dialect.

The MCP Server — 19 Tools Across Five Groups

The MCP server is the core interface between MemPalace and any AI tool. After a one-time connection step, your AI automatically calls the correct tool for each task. The 19 tools are split across five functional groups:

Group 1 — Palace Reading (7 tools)

These tools let your AI understand the structure and contents of your palace without performing a search:

  • mempalace_status — returns a complete palace overview including wing counts, the AAAK dialect specification, and the memory protocol. This is always the first tool a newly connected AI calls so it learns how to use the system.
  • mempalace_list_wings — lists every wing with a count of how many drawers it contains
  • mempalace_list_rooms — lists rooms within a specified wing
  • mempalace_get_taxonomy — returns the full wing → hall → room → drawer count hierarchy
  • mempalace_search — runs a semantic vector search with optional wing and room filters applied first
  • mempalace_check_duplicate — checks whether a piece of content already exists before filing
  • mempalace_get_aaak_spec — retrieves the current AAAK dialect reference

Group 2 — Palace Writing (2 tools)

  • mempalace_add_drawer — stores verbatim content into a specified wing, hall, and room
  • mempalace_delete_drawer — removes a stored memory by its unique ID

Group 3 — Knowledge Graph (5 tools)

The knowledge graph stores temporal entity-relationship triples — facts about people, projects, and decisions that have a start date and optionally an end date.

  • mempalace_kg_query — retrieves all relationships for an entity, with optional filtering by date
  • mempalace_kg_add — records a new entity-relationship triple with a validity start date
  • mempalace_kg_invalidate — marks a previously recorded fact as no longer true, with an end date
  • mempalace_kg_timeline — reconstructs the chronological history of an entity across all recorded facts
  • mempalace_kg_stats — returns graph-level statistics: total triples, active triples, entity count

Group 4 — Navigation (3 tools)

  • mempalace_traverse — follows connections from a starting room outward across wings via tunnels
  • mempalace_find_tunnels — identifies rooms that appear in two different wings simultaneously
  • mempalace_graph_stats — reports on the palace graph: wing count, room count, tunnel count

Group 5 — Agent Diary (2 tools)

  • mempalace_diary_write — appends an AAAK-formatted entry to a specialist agent's diary
  • mempalace_diary_read — retrieves the most recent N entries from a specialist agent's diary

Temporal Knowledge Graph

The knowledge graph is stored entirely in SQLite — a zero-cost, zero-configuration, locally-hosted alternative to Zep's Graphiti which uses Neo4j and requires cloud hosting. Facts are stored with a valid_from date, and when they stop being true, an ended date is applied. Historical queries respect these windows, so asking "what was Maya working on in January?" correctly returns the state of the world at that time, not the current state.

python — Knowledge Graph Usage
from mempalace.knowledge_graph import KnowledgeGraph
kg = KnowledgeGraph()
kg.add_triple("Maya", "assigned_to", "auth-migration", valid_from="2026-01-15")
kg.add_triple("Maya", "completed", "auth-migration", valid_from="2026-02-01")
# Historical query — what was Maya doing in January?
kg.query_entity("Maya", as_of="2026-01-20")
→ [Maya → assigned_to → auth-migration (active)]

Specialist Agents

Specialist agents are domain-focused AI roles — code reviewer, system architect, ops engineer — each defined by a short JSON configuration file and assigned their own wing in the palace. Each agent maintains a personal diary written in AAAK format. When the AI starts a session, it reads the diary to access accumulated expertise from every previous session.

A typical code reviewer diary entry compresses a complete finding into a single compact line: PR#42|auth.bypass.found|missing.middleware.check|pattern:3x.this.quarter|★★★★

Your CLAUDE.md file stays a single line regardless of agent count: "You have MemPalace agents. Run mempalace_list_agents to discover them."

Auto-Save Hooks

Two shell scripts provide automatic memory saving during Claude Code sessions:

  • Save Hook (hooks/mempal_save_hook.sh) — triggers every 15 messages. Captures the current session's topics, decisions, notable quotes, and code changes. Then regenerates the Layer 1 critical facts to reflect the latest state.
  • PreCompact Hook (hooks/mempal_precompact_hook.sh) — fires immediately before Claude Code performs context compression. Runs synchronously to guarantee that nothing in the current window is lost before the window shrinks.

Three Mining Modes

The mempalace mine command accepts three modes depending on what you are ingesting:

  • projects — reads source code, documentation, notes, and configuration files from a directory tree
  • convos — ingests conversation exports. The normaliser handles five formats: ChatGPT JSON, Claude.ai JSON, Claude Code JSONL, Slack JSON, and plain-text transcripts with speaker prefixes
  • general — applies auto-classification after the convos pass, sorting content into five hall types: decisions, preferences, milestones, problems, and emotional context

AAAK Dialect

AAAK is an abbreviation system built for the Layer 1 context-loading phase. It assigns short entity codes to frequently appearing names and uses structural separators to compress repeated information. It is readable by any LLM that can read English text — no decoder is needed.

Two important caveats: AAAK is lossy, not lossless; and it does not reduce token counts on short text. At small scales the structural overhead costs more tokens than the abbreviation saves. The benefit only materialises at scale — hundreds of sessions mentioning the same team of five people, for example. On the LongMemEval benchmark, AAAK mode scores 84.2% R@5 against raw mode's 96.6%. Use raw mode for storage and retrieval; reserve AAAK for context loading when token budget matters.

Benchmark Scores

BenchmarkModeScoreAPI Calls
LongMemEval R@5Raw — ChromaDB only96.6%Zero
LongMemEval R@5Hybrid + Haiku rerank100%~500
LongMemEval R@5AAAK compression mode84.2%Zero
LoCoMo R@10Raw, session level60.3%Zero
Wing+Room filteredMetadata pre-filter94.8% R@10Zero
← Previous
What Is MemPalace and How Does It Work?
Next →
Milla & Ben's Public Response to Community Criticism of MemPalace