Skip to content

v3.2.0 — The One Where Notion Moves Into Your Brain

Choose a tag to compare

@tpierrain tpierrain released this 18 Jun 22:18
· 27 commits to main since this release
8c93745

Your brain can now mirror a live Notion zone into its own vault — as clean, searchable, citable Markdown — so it answers from that zone framed, sourced and offline, with no copy-paste and no manual reindex. The central RAG your company doesn't have yet — but local, and right now.

👥 Who is this for?

  • 🌱 New here — you've never installed a second brain. Install and go: you get a private, local, RAG-powered second brain out of the box. Local mirrors are there the day you want your brain to also search an internal Notion zone — nothing to set up until then.
  • 🔄 You already run a second brain. Update its engine with the update-engine skill (opt-in, never touches your notes), then just ask your brain to "mirror this Notion zone locally" — the new /local-mirror skill walks you through it.
  • 🏢 Your team lives in Notion and there's no central mcp/search. This is the local-first answer in the meantime: your own brain mirrors the zone that concerns you and indexes it locally — zero infra, works today.

✨ New — mirror a Notion zone into your brain (/local-mirror)

Point your brain at a Notion root page, share a read-only integration with it, and the whole sub-tree becomes first-class notes in your vault — searchable semantically, cited, offline. No special vocabulary: ask in plain language, in any language.

  • "mirror the product zone from Notion locally"
  • "make my brain able to search this Notion"
  • 🇫🇷 "mets en place un miroir local pour ce Notion" · "réplique cette zone Notion en local"
  • "refresh my product mirror" / "is my mirror behind?"

A one-way local copy kept for the offline RAG: copied once, then refreshed on demand. Under the hood — delta sync via watermark, content-hash no-op skipping (an unchanged page rewrites/reindexes nothing), deletion reconciliation, atomic vault writes, clickable internal Notion-page links, and child-database extraction so DB-backed pages aren't mirrored empty.

Six tools, driven conversationally by the skill:

Tool What it does
setup_source Interactive onboarding: tests the scope, first sync, guides the token into .env (never through the chat)
sync Delta sync + deletion reconciliation for one mirror or all
check_freshness Light watermark-only check — is it behind, and by how much? (pulls nothing)
status Last sync, watermark, item count, lateness
list_sources All declared mirrors + their state
remove_source De-register, optionally clean up the folder + sidecar

The skill also disambiguates up front: durable / offline / citable → a local mirror; one-off / live / right now → the native Notion connector. It only asks when your intent is genuinely ambiguous.

🧭 Why "local mirror" (and not "golden source")

This release renames the concept golden-source-synclocal-mirror (skill, MCP server, persisted names, docs). "Golden source" over-claimed — it implied the authoritative source — and blurred the line with reading Notion live. A local mirror says exactly what it is: a one-way local copy of a chosen zone, kept for the offline RAG. The day a central search platform arrives, you switch over without rewriting anything (same vault contract).

🧩 Architecture — decoupled by the filesystem (ADR 0022)

local-mirror writes and deletes files, full stop. The existing FileWatcher reindexes and the auto-commit hook commits — the mirror server is unaware of the RAG. No tool bolted onto vault-rag, no code link between the two. It's a self-contained pure-JS MCP package (no native deps, no ABI-skew), hexagonal (ports & adapters).

📐 Known limitations (documented, by design)

  • Attached PDFs / Google Slides are not extracted — only the page's Notion text is mirrored (flagged at use-time).
  • Links to other Notion spaces are not pulled in — only the declared root page's sub-tree is mirrored.

Already have a brain installed? Update its engine with the update-engine skill (opt-in; never touches your notes, .env, constitution, settings or custom skills) — then ask it to mirror a Notion zone.