v3.3.0
MemPalace/mempalacev3.3.0Apr 14, 2026by milla-jovovich
AI Summary
Major architectural release introducing closets as the searchable index layer, BM25 hybrid search combining vector similarity with keyword matching, and support for 8 languages with full localization.
Key Highlights
- Closets layer - searchable index pointing to drawers (R@1 improved 38% from 0.42 to 0.58)
- BM25 Hybrid Search combining 60% vector + 40% keyword matching
- 8 Languages supported (English, French, Korean, Japanese, Spanish, German, Simplified Chinese, Traditional Chinese)
- Halls - content type routing (7 types: technical, emotions, family, memory, creative, identity, consciousness)
- Multi-Agent Safety with file-level locking for atomic delete+insert cycles
- Cross-Wing Tunnels for explicit project-to-project links with 4 new MCP tools
- Background auto-mining from conversation transcripts
New Features
- Closet searchable index layer with AAAK pointers
- BM25 hybrid search with Okapi-BM25 and Lucene IDF
- Internationalization with 8 languages and per-language regex patterns
- Diary ingest with day-based drawers
- Cross-wing tunnels for project linking
- Hall detection for content type routing
- Entity metadata on drawers and closets
- Fact checker against entity registry and knowledge graph
- LLM closet regeneration (bring-your-own endpoint)
- Drawer-grep returning best-matching chunk plus neighbors
- Pluggable storage backend
- mempalace migrate command for ChromaDB version recovery
- 29 MCP tools total
- Auto-save using transcript path
Full Release Notes
**Visit [mempalaceofficial.com](https://www.mempalaceofficial.com) for the full story behind this release and a visual guide to the architecture.** --- ## Highlights ### Closets are here The architecture we designed — wings, rooms, closets, drawers — is finally complete. Closets are the searchable index layer: compact AAAK pointers that tell the searcher which drawer to open. Search hits closets first (fast), then hydrates the full verbatim content from drawers. Closets are a **boost signal, not a gate** — direct drawer search always runs as the floor. Closets can only improve results, never hide them. - R@1: 0.42 → 0.58 (+38%) with regex closets - R@5: locked at 1.00 — no regression - Optional LLM closets (bring-your-own endpoint) push R@1 to 0.67 ### BM25 Hybrid Search Search now combines vector similarity (60%) with BM25 keyword matching (40%). Catches exact names, project codes, and error messages that embeddings miss. Real Okapi-BM25 with Lucene IDF, not a placeholder. ### 8 Languages MemPalace speaks English, French, Korean, Japanese, Spanish, German, Simplified Chinese, and Traditional Chinese. CLI output, AAAK compression instructions, and regex patterns all localized. Add a language by translating one JSON file. ### Halls — content type routing Drawers are now tagged by content type: technical, emotions, family, memory, creative, identity, consciousness. Halls connect rooms within a wing by what KIND of content they hold — search "emotional moments in my project" and get exactly those. ### Multi-Agent Safety File-level locking prevents concurrent agents from creating duplicate drawers. The delete+insert cycle is now atomic — two agents mining the same file can't interleave. ### Cross-Wing Tunnels Agents can create explicit links between projects. "This API design in project_api relates to the database schema in project_database." Four new MCP tools: create, list, delete, follow tunnels. ### Background Everything Save hooks no longer ask the agent to write in chat. Conversations are mined automatically from the transcript — no configuration needed. Zero tokens spent on bookkeeping. --- ## What's New (since v3.1.0) ### New Features - Closet layer — searchable index pointing to drawers - BM25 hybrid search — keyword + vector combined - i18n — 8 languages with per-language regex patterns - Diary ingest — day-based drawers, one per day, upsert as day grows - Cross-wing tunnels — explicit project-to-project links - Hall detection — content type routing (7 hall types) - Entity metadata — names stamped on drawers and closets - Fact checker — verify text against entity registry + knowledge graph - LLM closet regeneration — bring-your-own endpoint (Haiku, Gemma, any model) - Drawer-grep — search returns best-matching chunk + neighbors, not whole file - Backend seam for pluggable storage (#413) - `mempalace migrate` — recover palaces across ChromaDB versions (#502) - New MCP tools: drawer CRUD, tunnel management, hook settings, export (29 tools total) - Auto-save uses transcript path — no env var needed ### Security - Palace deletion guardrails, WAL redaction, MCP input validation (#739) - Input validation, argument whitelisting, concurrency safety (#647) - Credential paths removed from benchmarks (#177) - Shell injection fixes in hooks (#387) ### Bug Fixes - Remove chromadb <0.7 upper bound — unblocks 1.x installs (#690) - Fix convo_miner 8-line response truncation (#708) - Prevent HNSW bloat from duplicate add() calls (#544) - Unicode support in sanitize_name() — Latvian, CJK, Cyrillic (#683) - Auto-repair BLOB seq_ids for chromadb migration (#664) - Parse Claude.ai privacy export format (#685) - Detect mtime changes to prevent stale HNSW index (#757) - Full-content hash in drawer IDs for stable re-mines (#716) - Remove 10k drawer cap from status display (#707) - Noise stripping — system tags and Claude UI chrome removed from drawers - 30+ additional bug fixes ### Documentation - CHANGELOG.md added - CLOSETS.md — closet lifecycle documentation - 42 TDD tests verifying every README claim against code - README audit: tool count (29), version badge, token costs, AAAK description all corrected ### Internal - 109 commits since v3.1.0 - Test suite: 860+ tests (up from ~90 at v3.1.0) - ruff 0.4.x lint + format clean --- ## Install / Upgrade ```bash pip install --upgrade mempalace ``` Thank you from Milla and Lu ✨