Download Latest Version mempalace-native-windows-amd64.exe (2.2 MB) Google Add to Preferred Sources
Home / v3.11.0
Name Modified Size InfoDownloads / Week
Parent folder
mempalace_native_core-3.11.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 2026-10-14 1.1 MB
mempalace_native_core-3.11.0-cp39-abi3-manylinux_2_34_x86_64.whl 2026-10-14 1.3 MB
mempalace_native_core-3.11.0-cp39-abi3-win_amd64.whl 2026-10-14 1.1 MB
mempalace-native-linux-amd64 2026-10-14 2.7 MB
mempalace-native-macos 2026-10-14 2.3 MB
mempalace-native-windows-amd64.exe 2026-10-14 2.2 MB
mempalace_native_core-3.11.0-cp39-abi3-macosx_10_12_x86_64.whl 2026-10-14 1.1 MB
mempalace_native_core-3.11.0-cp39-abi3-macosx_11_0_arm64.whl 2026-10-14 1.1 MB
README.md 2026-10-14 19.8 kB
v3.11.0 -- audit, repair and opt-in EmbeddingGemma 2 source code.tar.gz 2026-10-14 26.8 MB
v3.11.0 -- audit, repair and opt-in EmbeddingGemma 2 source code.zip 2026-10-14 27.2 MB
Totals: 11 Items   67.0 MB 2

A palace can now be audited and repaired in guided steps, and EmbeddingGemma 2 arrives as an opt-in embedder with native image, audio and video search. Every palace records the embedding model that built it and refuses to open with a different one. Conversation mining stops discarding text, status, search, wake-up and hub mines stay responsive on large palaces, and a round of correctness fixes from the 3.11 review hardens metadata updates, recovery and HTTP validation.

Upgrade notes

  • The first conversation mine after upgrading re-mines each conversation file it covers, once. The exchange chunker no longer discards text (#2591), so conversation drawers filed before 3.11 count as stale and are re-chunked and re-embedded from transcripts still on disk; transcripts no longer on disk keep their drawers. Project files are not re-mined. Expect roughly 40 minutes to 3 hours per million drawers, depending on hardware. On a large palace, back up first and run it in batches at a quiet time, for example mempalace mine <dir> --mode convos --limit 200; an interrupted run resumes where it stopped.
  • A palace refuses to open with a different embedding model than the one that built it. Search, mining and MCP writes stop with a message that names the fix: set embedding_model (config.json or MEMPALACE_EMBEDDING_MODEL) back to the model the palace was built with, or re-embed with mempalace repair rebuild-index. A palace with no recorded model opens with the configured one and a warning that names mempalace palace set-embedder. (#2694, [#2717])
  • EntityRegistry.research() and confirm_research() are removed. They were an opt-in, off-by-default Wikipedia lookup that nothing in the CLI, MCP server, miners or hooks called. Existing wiki_cache entries in entities.json are still read by lookup(). (GHSA-mrj5)

EmbeddingGemma 2 and embedder identity

  • EmbeddingGemma 2 is available as an opt-in embedder. Set embedding_model: embeddinggemma2 and install mempalace[embeddinggemma2], or mempalace[multimodal] for media (Python 3.10+, PyTorch). It runs on CUDA when present, on Apple MPS, or on CPU, and supports 768/512/256/128 dimensions. A CUDA out-of-memory error halves the batch and retries. (#2694, [#2717])
  • Native image, audio and video retrieval. A built-in media source adapter embeds original files into a separate mempalace_assets collection, and opt-in CLI/MCP media search returns typed local asset references alongside matching drawers. File-level retrieval is experimental. (#2694)
  • Existing palaces are untouched unless you opt in. The default MiniLM path is unchanged and nothing is re-embedded. An unknown embedding_model keeps the MiniLM fallback, while near misses of a known name are refused instead of silently falling back. (#2717)
  • Every palace records which embedder built it, and every write path fails closed on a mismatch. CLI, MCP, mine and repair check the recorded identity; repair rebuild-index and --mode from-sqlite record it again after a verified rebuild; new Qdrant and pgvector palaces record it; and MCP refuses rather than falling back to Chroma's default embedder. (#2717; fixes [#2709])

Palace audit and guided repair

  • mempalace audit scores how well a palace is organized, across five layers (rooms, wings, tunnels, hallways and knowledge graph), with concrete findings, --json output and --fail-under for cron or CI. It is read-only and runs against a palace an MCP server is serving. (#2576)
  • Guided repair tooling: mempalace instructions audit walks an agent and user through the findings; rooms propose / apply give a wing a closed room set; wings split turns a machine-level transcript wing into one wing per project; tunnels propose / prune and hallways --rebuild / --prune-spellings clean up noisy links; and kg normalize maps one-off predicates onto a closed vocabulary. Everything is a dry run until --yes, and interrupted runs finish on retry. LLM-backed steps default to a local endpoint and need --accept-external-llm for anything else. (#2576, [#2655], [#2656], [#2657], [#2664], [#2668], [#2669])
  • Metadata-only updates on the SQLite backends are ~6000x faster, so wing and room moves on large palaces finish in seconds. (#2576)

Correctness fixes from the 3.11 review

  • Metadata-aware updates and upserts guard the inputs used for embedding. Concurrent document or metadata changes are refused before publication, and removed fields are omitted from embedding metadata. (#2734)
  • Drawer listings keep metadata and page previews in one recovered snapshot, and fall back to Chroma while recovery is pending. (#2734)
  • Room recovery rejects damaged journals before applying changes, and approved tunnel proposals keep their full spelling context. (#2734)
  • Malformed HTTP tool names return normal JSON-RPC validation errors instead of failing during dispatch. (#2734)

Performance and large palaces

  • Status, search and wake-up stay responsive on large palaces. Count caches no longer expire before they are used (8–12 s down to about 1 ms on a 360k-drawer palace), the MCP server stops reloading the vector index on almost every call, wake-up reads recent drawers from SQLite, and mining no longer rescans the palace with quadratic paging. (#2593)
  • Mines on very large palaces do far less redundant work, and a mine on the HTTP hub yields to queued requests between files. (#2567, [#2593], [#2688], [#2689], [#2690], [#2691])
  • Diary reads and single-drawer lookups read from SQLite when it already has the rows. (#2650)

Bug fixes

  • Conversation mining no longer discards text after a --- markdown rule, before the first user turn, or in short exchanges. (#2591)
  • mempalace_reconnect no longer runs under a running mine; it waits up to 10 s and then returns MineInProgress, and a mine that failed some files raises MineFileErrors and exits 1. (#2701, [#2705])
  • In-process SQLite reads keep Chroma's locks, so status, taxonomy, BM25 and integrity checks no longer risk torn reads. (#2506, [#2573], [#2652], [#2658])
  • event_list and event_wait no longer hide another agent's request because the caller passed its own from_agent. (#2616)
  • Hub and daemon routes keep --include-ignored and --include-subagents, and relative sweep / sync paths resolve against the caller's directory. (#2582, [#2583], [#2584], [#2733])
  • sync --apply no longer removes drawers of files that are still on disk behind mounts and bind mounts. (#2368, [#2564])
  • The stdio MCP servers stay up and answer on unparseable lines and when their hub is gone. (#2534, [#2555], [#2557])
  • Also: mempalace.yml is accepted and updated by init (#2699, [#2704]); .al and .ps1 sources are mined (#2702, [#2706]); case-only wing/room renames apply (#2426); KG writes no longer need the peer-writer lease (#2423); the legacy repair holds the palace lock (#2569); EmbeddingGemma's q8 memory blow-up is fixed (#2693); DirectML sessions run serially (#2687); and more — see the full list below.

Security and dependencies

  • ChromaDB telemetry is disabled explicitly, not just silenced. Nothing was transmitted on the supported 1.x line. (GHSA-8h77, [#2524])
  • The unused Wikipedia lookup is removed, so local-first is a property of the code rather than a default argument. (GHSA-mrj5, [#2526], [#2527])
  • Pillow 12.3.0, chromadb 1.5.9 and routine lock bumps. Pillow 12.3.0 needs Python 3.10+, so Python 3.9 installs stay on Pillow 11.3.0, which is affected by the Pillow advisories fixed in 12.3.0. SECURITY.md now warns against exposing a Chroma HTTP server. (#2719)
  • Read-only MCP tools advertise annotations.readOnlyHint, so plan modes and read-only subagents can use memory search without a host-side allowlist. (#2610, [#2640])

Install / upgrade

:::bash
pip install --upgrade mempalace        # or: uv tool upgrade mempalace / pipx upgrade mempalace

Optional EmbeddingGemma 2 and media search (Python 3.10+): pip install -U "mempalace[embeddinggemma2]" or "mempalace[multimodal]", then set embedding_model: embeddinggemma2 for a new palace. See docs/embeddinggemma2.md.

Optional native exact-vector search: the mempalace_native_core wheels and standalone mempalace-native executables are attached to this release (see crates/README.md).

A big thank-you to everyone who contributed. This release includes 79 merged PRs: 76 from 11 contributors, three of them first-time, plus three Dependabot bumps.

Install: pip install -U mempalace==3.11.0

What's Changed

New Contributors

Full Changelog: https://github.com/MemPalace/mempalace/compare/v3.10.0...v3.11.0

Source: README.md, updated 2026-10-14