v3.4.1

0xPlaygrounds/rigv3.4.1Jun 15, 2026by igorls

AI Summary

IDE integration release adding Cursor and Antigravity support with native hooks, along with reliability fixes for embedding and backup management.

Key Highlights

  • Added Cursor IDE plugin with native hooks and MCP server auto-registration
  • First-class Google Antigravity IDE support with hooks and plugin
  • Fixed embeddinggemma OOM issues with batch processing
  • Implemented backup retention limits to prevent disk filling
  • Zero-config interpreter resolution for hooks

New Features

  • Cursor IDE plugin with auto-registration and slash commands
  • Cursor IDE hooks (stop/preCompact/sessionStart) for auto-save and mining
  • Antigravity IDE support with plugin and lifecycle hooks
  • Zero-config interpreter resolution for hook scripts
  • Embeddinggemma batch processing to prevent OOM kills
  • Backup retention with max_backups setting (default 10)
  • MCP tool additions: mempalace_mine, list_hallways, delete_hallway

Full Release Notes

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

## New Contributors
* @margaretjgu made their first contribution in https://github.com/MemPalace/mempalace/pull/1697
* @ggettert made their first contribution in https://github.com/MemPalace/mempalace/pull/1741
* @undeadindustries made their first contribution in https://github.com/MemPalace/mempalace/pull/1633
* @Hexecu made their first contribution in https://github.com/MemPalace/mempalace/pull/1717
* @thismilktea made their first contribution in https://github.com/MemPalace/mempalace/pull/1721

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