{"full_name":"MemPalace/mempalace","owner":"MemPalace","name":"mempalace","url":"https://github.com/MemPalace/mempalace","description":"The best-benchmarked open-source AI memory system. And it's free.","homepage":"http://mempalaceofficial.com/","topics":[],"language":"Python","license":"MIT","avatar":"https://avatars.githubusercontent.com/u/275135684?v=4","created_at":"2026-04-05T01:12:07Z","pushed_at":"2026-11-09T04:04:37Z","metrics":{"stars":60499,"forks":7661,"watchers":310,"issues":957,"prs":1912,"releases":19,"issues_open":null,"issues_closed":null,"prs_open":null,"prs_closed":null,"prs_merged":null,"discussions":67},"growth":{"day":{"stars":20,"forks":0,"base_day":"2026-11-09"},"week":{"stars":252,"forks":24,"base_day":"2026-11-03"},"month":{"stars":1082,"forks":99,"base_day":"2026-10-11"}},"history":{"dates":["2026-09-06","2026-09-07","2026-09-08","2026-09-09","2026-09-10","2026-09-11","2026-09-12","2026-09-13","2026-09-14","2026-09-15","2026-09-16","2026-09-17","2026-09-18","2026-09-19","2026-09-20","2026-09-21","2026-09-22","2026-09-23","2026-09-24","2026-09-25","2026-09-26","2026-09-27","2026-09-28","2026-09-29","2026-09-30","2026-10-01","2026-10-02","2026-10-03","2026-10-04","2026-10-05","2026-10-06","2026-10-07","2026-10-08","2026-10-09","2026-10-10","2026-10-11","2026-10-12","2026-10-13","2026-10-14","2026-10-15","2026-10-16","2026-10-17","2026-10-18","2026-10-19","2026-10-20","2026-10-21","2026-10-22","2026-10-23","2026-10-24","2026-10-25","2026-10-26","2026-10-27","2026-10-28","2026-10-29","2026-10-30","2026-10-31","2026-11-01","2026-11-02","2026-11-03","2026-11-04","2026-11-09","2026-11-10"],"stars":[58598,58629,58664,58682,58691,58705,58725,58775,58804,58827,58842,58856,58901,58939,58964,58982,59004,59018,59049,59082,59095,59126,59144,59153,59202,59225,59249,59260,59278,59289,59331,59360,59383,59384,59401,59417,59429,59451,59475,59479,59494,59527,59548,59563,59576,59596,59614,59644,59661,59677,59697,59718,59726,59748,59759,59770,59961,60150,60247,60330,60479,60499],"forks":[7515,7520,7521,7525,7526,7525,7536,7544,7543,7547,7547,7545,7548,7552,7558,7562,7564,7564,7556,7557,7557,7559,7563,7563,7563,7566,7566,7568,7565,7565,7559,7561,7564,7563,7562,7562,7560,7561,7562,7561,7562,7556,7561,7563,7564,7564,7563,7565,7568,7570,7573,7575,7576,7581,7587,7588,7599,7618,7637,7649,7661,7661],"watchers":[323,322,321,321,322,320,322,327,327,327,327,328,328,328,329,327,326,325,325,324,323,323,323,322,322,322,323,323,325,324,324,325,324,324,324,324,324,324,324,323,323,323,322,322,321,321,320,320,319,319,320,320,316,316,314,314,313,314,311,311,310,310],"issues_open":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"prs_open":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"boards":{},"same_owner":[],"issues":[{"number":27,"title":"Multiple issues between README claims and codebase","comments":39,"created_at":"2026-04-07T08:47:47Z"},{"number":599,"title":"There are too few rooms","comments":18,"created_at":"2026-04-11T04:26:48Z"},{"number":1963,"title":"Epic: concurrent-writer HNSW corruption — unified tracking for the recurring-divergence cluster (357, 1092, 1581, 1799, 1845, 1888, chroma#6975, …)","comments":16,"created_at":"2026-07-08T03:47:18Z"},{"number":531,"title":"Readme chromadb version differs from actual","comments":14,"created_at":"2026-04-10T12:36:15Z"},{"number":408,"title":"Plugin assumes python3 -m mempalace — breaks on modern Linux (PEP 668) and with uv/pipx","comments":12,"created_at":"2026-04-09T17:41:15Z"},{"number":269,"title":"Hybrid retrieval direction: make the palace wiring production-real without changing the conceptual design","comments":12,"created_at":"2026-04-08T16:38:24Z"},{"number":1888,"title":"Peer-writer lock (#1818/#1823) is incompatible with the multi-session daemon topology (#1270) + external hook/manual mines","comments":11,"created_at":"2026-06-27T13:37:40Z"},{"number":1329,"title":"Stop hook: 1.9 TB palace bloat + ChromaDB Rust bindings segfault despite #1231 fix","comments":10,"created_at":"2026-05-03T15:46:55Z"}],"discussions":[{"number":2863,"title":"I would like to contribute... i have created a Gmail Adapter...","comments":0,"category":"Ideas","created_at":"2026-10-18T22:28:20Z"},{"number":2680,"title":"Six months of research on MemPalace, and the one thing it couldn't do: a shared instance for a small group","comments":0,"category":"Ideas","created_at":"2026-10-05T20:20:29Z"},{"number":2671,"title":"One hub for every machine: a shared-brain setup, and a \"new\" Claude Code plugin for the client side","comments":0,"category":"Show and tell","created_at":"2026-10-04T03:06:47Z"},{"number":2585,"title":"Hosted memory backend as a benchmark baseline?","comments":0,"category":"Show and tell","created_at":"2026-09-23T22:31:44Z"},{"number":2578,"title":"Sharing a read-only dashboard for the palace (screenshots inside)","comments":0,"category":"Show and tell","created_at":"2026-09-23T03:04:49Z"},{"number":2570,"title":"MAQS — open audit checklist for verbatim + hybrid memory systems","comments":0,"category":"Show and tell","created_at":"2026-09-21T21:04:43Z"},{"number":2566,"title":"SeoPalace: an independent lexical layer on top of MemPalace (and a question about the name)","comments":0,"category":"Show and tell","created_at":"2026-09-21T11:58:27Z"},{"number":2543,"title":"Optional lifecycle and release visibility for MemPalace","comments":0,"category":"General","created_at":"2026-09-18T02:17:55Z"}],"latest_release":{"name":"v3.11.0 — audit, repair and opt-in EmbeddingGemma 2","tag":"v3.11.0","published_at":"2026-10-14T05:25:57Z","body":"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.\n\n### Upgrade notes\n\n- **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.\n- **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)\n- **`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)\n\n### EmbeddingGemma 2 and embedder identity\n\n- **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)\n- **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)\n- **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)\n- **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)\n\n### Palace audit and guided repair\n\n- **`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)\n- **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"},"readme":true,"readme_zh":false,"news":[],"stale":false,"snapshot_at":"2026-11-10T09:35:25Z","history_start":"2026-09-06"}