Skip to content

v2.0.0 — Knowledge Graph, Notion Sync, Multi-hop Recall

Choose a tag to compare

@rahilp rahilp released this 11 Jul 21:03
· 313 commits to main since this release
2e1d702

What's new in v2

v2 ships the features that make Second Brain a knowledge graph, not just a list of memories.

Self-organizing knowledge graph

The dashboard now includes a graph view that automatically clusters your memories into nested topic groups. Broad categories contain sub-topic rings. The layout is deterministic and static — no spinning, no force animation. Tap any node to open the full memory entry directly from the graph.

The clustering algorithm picks each memory's most distinguishing tag as its outer category, skipping near-universal tags that would collapse everything into one blob. Sub-topics form where enough members share a focused tag. The packer is scale-invariant, so the graph stays tight whether you have 50 memories or 5,000.

Notion integration

Connect a Notion internal integration token and Second Brain mirrors your shared pages as memories. Pages sync automatically via the nightly cron and via the "Sync now" button in Settings. Edits in Notion update the mirrored memory in place, preserving graph edges and recall history. Archived or unshared pages are removed automatically. Mirrored entries are protected from manual edits while the integration is connected — Notion stays the source of truth. Disconnect keeps your synced memories by default; a purge option is available if you want a clean slate.

No schema changes. All integration state lives in KV.

Multi-hop recall

Recall now traverses the relationship graph up to one hop out. Results that arrive via a graph link are labeled "related · N hop(s)" in the UI and in the /chat serialization, so you can tell direct evidence from graph-expanded context. Direct matches always rank above expanded ones by construction.

Edge deletion

Bad links can now be removed from the Related list on any memory entry (one tap, confirm dialog), via POST /unlink (REST), or via the unlink MCP tool from any AI client. Deletion is order-agnostic and type-scoped.

Full export

GET /export now returns every entry with no truncation and includes the full edges table. The previous implementation silently capped at 100 entries and omitted relationships entirely. JSON and Markdown formats both include relationship data.

Patterns panel

Auto-detected patterns are now surfaced in the dashboard. Confirm a pattern to promote it to a canonical semantic memory. Dismiss to deprecate it. The panel is hidden when empty.

Classification backfill

Entries created before kind/status classification was introduced can now be backfilled via the "Classify pending" section in the dashboard. The endpoint runs in bounded batches and is safe to loop until drained.

Bug fixes

  • Importance score in stats now displays as X.X / 5, matching the 1-5 scoring range used internally (was incorrectly shown as / 10)
  • Graph node taps now fetch the full entry content before opening the sheet (previously passed the 80-char graph label as content, which broke Append/Edit/Forget)

Upgrading from v1

No D1 schema changes are required. After deploying, run the "Vectorize pending" and "Classify pending" passes from the dashboard to bring older entries up to date.

To enable Notion sync: create an internal integration at app.notion.com/developers/connections, share pages with it, and paste the token in Settings > Integrations.