From 1417479729736881ccb2bd58ea1f4fddb3004958 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Wed, 22 Jul 2026 21:16:16 -0400 Subject: [PATCH] Graph: label hubs cluster notes; unlinked notes float by default MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add labels as first-class nodes in the graph so tags act as visual clustering hubs, and let unlinked notes float in the space by default — per operator request (the graph is a light auxiliary lens, not a focal surface). Backend (graph.py): - Emit a label-hub node (id "label:", kind "label", #name, label color) for every label attached to a live note. - Emit note -> label membership edges (kind "label") alongside the existing wiki-link edges (now kind "link"). Frontend (GraphView.vue): - Render hubs as larger ringed nodes; membership edges dashed with a slightly longer spring rest so notes ring their hub. - Default showAll (unlinked notes float) to true; add a Show labels toggle (default on) that hides hubs + membership edges. - Click a label hub -> that label's board lens (/label/); note clicks still open the editor. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_01FRgehjoz7Yv8LkUfADxACm --- frontend/src/views/GraphView.vue | 99 ++++++++++++++++++++++++++------ src/thoughtsync/graph.py | 60 +++++++++++++++---- 2 files changed, 128 insertions(+), 31 deletions(-) diff --git a/frontend/src/views/GraphView.vue b/frontend/src/views/GraphView.vue index 06711af..cc58899 100644 --- a/frontend/src/views/GraphView.vue +++ b/frontend/src/views/GraphView.vue @@ -1,14 +1,19 @@