Skip to content

MemPalace

v3.5.0 Feature

This release adds 4 notable features for engineering teams evaluating rollout.

Published 1mo RAG & Retrieval
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

ai chromadb llm mcp memory python

Affected surfaces

auth breaking_upgrade

Summary

AI summary

Adds local daemon, HTTP transport for MCP, new checkpoint/cleanup tools, expanded parsers and miner coverage, plus performance and bug fixes.

Full changelog

v3.5.0 — local write daemon, opt-in HTTP transport, and palace-cleanup tooling

This cycle adds two new ways to run MemPalace's write path and a set of tools for keeping a palace clean. An opt-in local daemon serializes background mines, diary saves, and hook ingests through a single process instead of racing for the palace handle, and an opt-in HTTP transport lets the MCP server run behind a long-lived HTTP client/proxy — loopback-default, with a Host/Origin DNS-rebinding guard and an optional bearer token. Three new MCP tools land alongside: mempalace_checkpoint (batch a whole session into one save), mempalace_delete_by_source (surgically purge mined benchmark/eval contamination — drawers and their index entries), and a source_file filter for scoped search. New transcript parsers (Continue.dev, Gemini CLI, Pi) and miner coverage for C#/PHP/Swift/Kotlin/Java widen what you can mine, and a batch of large-palace performance and reliability fixes round out the release.

Features

  • Opt-in local daemon for queued writes. mempalace daemon serializes all palace writes through one local process so background work stops racing the palace handle. Opt-in and local-only. (#1826)
  • Opt-in HTTP transport for the MCP server. mempalace-mcp --transport http serves JSON-RPC at POST /mcp (with GET /healthz) for proxy/long-lived deployments. stdio remains the default; the HTTP path binds 127.0.0.1, pins Host and rejects non-loopback Origin (DNS-rebinding guard), and supports an optional MEMPALACE_MCP_HTTP_TOKEN bearer token. (#1801, #1806)
  • mempalace_checkpoint batch-save tool. Files multiple add_drawer calls plus an optional diary entry in a single MCP round-trip, verbatim, reusing the idempotent add/dedup path. (#1851)
  • mempalace_delete_by_source bulk-cleanup tool. Exact-match, dry-run-by-default deletion of every drawer and its closet/AAAK index entries for a source_file — the recourse when benchmark/eval files get mined into a real wing. The dry run reports the blast radius; the commit writes a WAL audit entry. (#1722, #1729)
  • Optional source_file filter for mempalace_search. Scope a search to an exact stored path; threaded through every search path so it never silently drops a match. (#1815, #1817)
  • New transcript parsers — Continue.dev sessions (#731), Gemini CLI / AI Studio (#204), and Pi agent JSONL (#169).
  • Wider miner language coverage — C#/.NET, PHP (#1819), Swift/Kotlin (#1368), and Java project detection incl. rootless subprojects (#1720).
  • Final mine on Claude plugin SessionEnd so the last exchanges are captured at session close. (#1814, #1820)

Performance

  • Overview/status and graph_stats answered from the SQLite aggregate — fixes large-palace timeouts. (#1748, #1379)
  • Embedder caps ONNX-runtime intra-op threads so a background mine no longer pins every core. (#1068)
  • SQL-pushdown pagination for sqlite_exact (#1842) and pgvector (#1840), plus single-scroll bulk metadata for Qdrant (#1832).

Bug Fixes

  • pgvector tolerates hostile transcript bytes — a lone surrogate (#1833) or NUL byte (#1829) no longer aborts the whole mine.
  • Diverged-index recovery points at repair --mode from-sqlite, not a re-mine — re-mining silently dropped MCP-added drawers and diary entries. (#1843, #1847, #1849)
  • Stale ChromaDB HNSW divergence routes to the SQLite fallback instead of failing the read. (#1816, #1822)
  • The MCP server refuses a second writer for the same palace rather than racing the HNSW handle. (#1818, #1823)
  • Windows hook miner spawns with CREATE_NO_WINDOW — no console flash. (#1783, #1848)
  • Percent-encoded SQLite read-only URIs so spaced/special-char palace paths open.

CI

  • test-windows retries only the transient ChromaDB HNSW compaction flake (--only-rerun); Linux/macOS keep zero reruns so real regressions stay loud. (#1854)

A big thank-you to everyone who contributed this cycle — many of these features and fixes came from the community, including several first-time contributors. Everyone is credited below.

What's Changed

  • fix(migrate): roll back swap from pre-migrate backup on failure by @eldar702 in https://github.com/MemPalace/mempalace/pull/1028
  • feat(miner): add PHP ecosystem file extensions by @ManuelReschke in https://github.com/MemPalace/mempalace/pull/1819
  • feat(miner): add support for Swift and Kotlin file extensions by @EVSalomon in https://github.com/MemPalace/mempalace/pull/1368
  • fix: detect Java project manifests by @jsiu93 in https://github.com/MemPalace/mempalace/pull/1720
  • feat(normalize): add Continue.dev session parser by @sjhddh in https://github.com/MemPalace/mempalace/pull/731
  • feat: add Gemini CLI / AI Studio session import support by @FBISiri in https://github.com/MemPalace/mempalace/pull/204
  • feat: add Pi agent JSONL session normalizer by @adv3nt3 in https://github.com/MemPalace/mempalace/pull/169
  • feat(miner): add C# and .NET file extensions to READABLE_EXTENSIONS by @Davez69gto in https://github.com/MemPalace/mempalace/pull/952
  • feat: opt-in local daemon for queued MemPalace writes by @igorls in https://github.com/MemPalace/mempalace/pull/1826
  • fix(daemon): address post-merge review feedback on #1826 by @igorls in https://github.com/MemPalace/mempalace/pull/1828
  • chore(deps-dev): bump ruff from 0.15.15 to 0.15.18 by @dependabot[bot] in https://github.com/MemPalace/mempalace/pull/1827
  • perf: sqlite fast-path for overview tools + embedder thread cap (#1748, #1379, #1068) by @igorls in https://github.com/MemPalace/mempalace/pull/1836
  • perf(mcp): sqlite fast path for graph_stats (#1379) by @igorls in https://github.com/MemPalace/mempalace/pull/1837
  • fix: percent-encode sqlite read-only URIs for spaced/special-char paths by @igorls in https://github.com/MemPalace/mempalace/pull/1838
  • fix(pgvector): strip NUL bytes so a transcript NUL no longer aborts the mine (#1829) by @mvalentsev in https://github.com/MemPalace/mempalace/pull/1831
  • fix(pgvector): replace lone surrogates so a transcript surrogate no longer aborts the mine (#1833) by @mvalentsev in https://github.com/MemPalace/mempalace/pull/1834
  • fix(mcp): route _sqlite_graph_stats through sqlite_read_uri by @igorls in https://github.com/MemPalace/mempalace/pull/1839
  • fix(backends): push sqlite_exact get(limit, offset) pagination into SQL (#1841) by @mvalentsev in https://github.com/MemPalace/mempalace/pull/1842
  • fix(pgvector): push get(limit, offset) pagination into SQL (#1830) by @mvalentsev in https://github.com/MemPalace/mempalace/pull/1840
  • test(backends): live-substrate conformance module for pgvector by @jphein in https://github.com/MemPalace/mempalace/pull/1769
  • fix(tests): run fact_checker main via subprocess to clear runpy warning by @trek-e in https://github.com/MemPalace/mempalace/pull/1798
  • fix: use CREATE_NO_WINDOW so Windows hook miner spawns don't flash a console (#1783) by @eldar702 in https://github.com/MemPalace/mempalace/pull/1848
  • fix(chroma): route stale hnsw divergence to sqlite fallback by @fatkobra in https://github.com/MemPalace/mempalace/pull/1822
  • fix(repair): point index-read failures to repair --mode from-sqlite (#1843) by @mvalentsev in https://github.com/MemPalace/mempalace/pull/1847
  • fix: point diverged-index recovery at from-sqlite, not re-mine (#1843) by @undeadindustries in https://github.com/MemPalace/mempalace/pull/1849
  • chore(deps): bump docker/login-action from 3 to 4 by @dependabot[bot] in https://github.com/MemPalace/mempalace/pull/1788
  • chore(deps): bump docker/build-push-action from 6 to 7 by @dependabot[bot] in https://github.com/MemPalace/mempalace/pull/1787
  • chore(deps): bump docker/metadata-action from 5 to 6 by @dependabot[bot] in https://github.com/MemPalace/mempalace/pull/1786
  • fix(backends): single-scroll bulk metadata fetch for Qdrant; bump scroll page size (#1796) by @fatkobra in https://github.com/MemPalace/mempalace/pull/1832
  • fix(mcp): refuse second writer for same palace by @fatkobra in https://github.com/MemPalace/mempalace/pull/1823
  • feat(search): add an optional source_file filter to mempalace_search (#1815) by @mvalentsev in https://github.com/MemPalace/mempalace/pull/1817
  • feat: add mempalace_checkpoint batch save tool by @undeadindustries in https://github.com/MemPalace/mempalace/pull/1851
  • fix(claude-plugin): run final mine on SessionEnd by @fatkobra in https://github.com/MemPalace/mempalace/pull/1820
  • feat(mcp): add mempalace_delete_by_source bulk-cleanup tool (#1722) by @arnoldwender in https://github.com/MemPalace/mempalace/pull/1729
  • feat(mcp): add opt-in HTTP transport by @fatkobra in https://github.com/MemPalace/mempalace/pull/1806
  • ci(test-windows): retry the transient ChromaDB HNSW compaction flake by @igorls in https://github.com/MemPalace/mempalace/pull/1854
  • chore(release): 3.5.0 by @igorls in https://github.com/MemPalace/mempalace/pull/1853
  • Release v3.5.0 — promote develop to main by @igorls in https://github.com/MemPalace/mempalace/pull/1855

New Contributors

  • @ManuelReschke made their first contribution in https://github.com/MemPalace/mempalace/pull/1819
  • @EVSalomon made their first contribution in https://github.com/MemPalace/mempalace/pull/1368
  • @jsiu93 made their first contribution in https://github.com/MemPalace/mempalace/pull/1720
  • @FBISiri made their first contribution in https://github.com/MemPalace/mempalace/pull/204
  • @Davez69gto made their first contribution in https://github.com/MemPalace/mempalace/pull/952

Full Changelog: https://github.com/MemPalace/mempalace/compare/v3.4.1...v3.5.0

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track MemPalace

Get notified when new releases ship.

Sign up free

About MemPalace

The highest-scoring AI memory system ever benchmarked. And it's free.

All releases →

Related context

Beta — feedback welcome: [email protected]