github MemPalace/mempalace v3.4.1

5 hours ago

v3.4.1 — Cursor and Antigravity IDE support

We now have support for two more editors: a Cursor plugin with native hooks, and first-class Google Antigravity support — both bringing MemPalace's auto-save, session-start recall, and verbatim transcript mining to the same standard already shipping for Claude Code and Codex. Two reliability fixes round out the cycle: embeddinggemma no longer OOM-kills large re-embeds, and migrate / repair backups stop accumulating until they fill the disk.

Features

  • Cursor IDE plugin (.cursor-plugin/). Auto-registers the mempalace-mcp server, five slash commands (/mempalace-help, /mempalace-init, /mempalace-mine, /mempalace-search, /mempalace-status), and a model-invocable skill — no manual ~/.cursor/mcp.json edit. Install from a local clone now, or the Cursor marketplace once published. (#1632)

  • Cursor IDE hooks (stop / preCompact / sessionStart). Background auto-save every N agent turns, synchronous transcript mining before Cursor compacts, and session-start memory recall scoped to the workspace wing. One-command installer at hooks/cursor/install.sh (--scope user|project, --variant full|minimal, --dry-run, --uninstall) — idempotent and dependency-free.

  • First-class Antigravity (Google) IDE support. New .antigravity-plugin/ package and idempotent installer that registers MemPalace as an Antigravity plugin — MCP server, skill, and two lifecycle hooks (background mining on Stop, verbatim memory injection on the first model call). bash 3.2 / macOS-compatible, shares the same ~/.mempalace/hook_state/ directory as the Claude Code / Codex / Cursor hooks, and honors every existing kill switch. (#1633, #1771)

  • Zero-config interpreter resolution for hooks. The hooks now resolve Python from the mempalace-mcp console-script shebang before falling back to python3, fixing silently-no-op mining under uv tool install / pipx layouts where the system python3 can't import mempalace.

Bug Fixes

  • embeddinggemma no longer OOM-kills bulk re-embeds. The ONNX embedder ran a single pass over its entire input, so a repair-scale batch (~5,000 docs) allocated attention buffers far beyond available RAM and the kernel killed the process silently. Embedding now runs in 32-doc sub-batches; per-document vectors are unchanged. (#1770)

  • Backup retention to prevent unbounded disk usage. mempalace migrate and mempalace repair max-seq-id wrote a fresh, full-size backup every run and never cleaned up — one palace was found with hundreds of GB of stale backups beside a few hundred MB of live data. A new max_backups setting (default 10; 0 keeps all) now prunes the oldest after each new backup is written. (#1697)

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

What's Changed

  • feat(searcher): metric-aware distance→similarity conversion (RFC 001 §10) by @igorls in #1727
  • feat(backends): embedder-identity contract + three-state enforcement (RFC 001) by @igorls in #1731
  • feat(backends): observable maintenance hooks + pgvector indexed-build path (RFC 001) by @igorls in #1732
  • feat(backends): shared embedder-identity sidecar + qdrant identity (RFC 001) by @igorls in #1734
  • fix(backends): keep post-deletion dim-None HNSW segments instead of quarantining (#1710) by @mvalentsev in #1723
  • fix(backups): add max_backups retention to bound backup disk usage by @margaretjgu in #1697
  • feat(mcp): add mempalace_mine tool (#1662) by @mvalentsev in #1692
  • fix(miner): count only new work toward --limit, not already-mined skips (#1535) by @mvalentsev in #1622
  • feat(mcp): expose list_hallways and delete_hallway tools by @ggettert in #1741
  • fix(mcp): preserve room/wing casing on case-only update by @Sathvik-1007 in #1737
  • feat: add Antigravity IDE support (hooks, plugin, skill, docs, tests) by @undeadindustries in #1633
  • feat(antigravity): add recall skill, optional rule, shared protocol by @undeadindustries in #1771
  • feat: add Cursor IDE support (hooks, plugin, skill, docs, tests) by @undeadindustries in #1632
  • fix(backends): serialize first connect in sqlite_exact and pgvector (#1774, #1775) by @mvalentsev in #1793
  • fix(mcp): treat chunked drawers as logical drawers by @fatkobra in #1782
  • fix(repair): run post-rebuild FTS5 cleanup on legacy cmd_repair path (#1747) by @mvalentsev in #1749
  • fix(embedding): chunk EmbeddinggemmaONNX batches to bound ONNX memory (#1770) by @mvalentsev in #1777
  • fix(hooks): delegate shell hooks to Python runner by @fatkobra in #1790
  • fix(ids): use length-prefixed recipe v3 by @fatkobra in #1781
  • fix(hallways): scope hallway-file path to MempalaceConfig.palace_path (#1778) by @ggettert in #1780
  • fix(searcher): scope neighbor expansion by parent_drawer_id (#1580) by @mvalentsev in #1582
  • fix(mcp): drop top-level anyOf from diary_write schema by @Hexecu in #1717
  • test: stabilize release validation on develop by @igorls in #1802
  • fix(mcp): fail closed when add_drawer idempotency pre-check fails by @thismilktea in #1721
  • fix: close blob seq sqlite migration connection by @igorls in #1804
  • fix: preserve collection_name on MCP search retry by @trek-e in #1624
  • fix(palace): clean source mine locks safely by @igorls in #1803
  • test: stabilize closet boost fixture on Windows by @igorls in #1807
  • chore(release): 3.4.1 by @igorls in #1809
  • fix(hooks): portable mtime in macOS hook throttles; doc cleanup by @igorls in #1811
  • Release v3.4.1 — promote develop to main by @igorls in #1810

New Contributors

Full Changelog: v3.4.0...v3.4.1

Don't miss a new mempalace release

NewReleases is sending notifications on new releases.