From ca1d4e1b4a049d3f6207da2a9c2fc49566534e56 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 16 Jun 2026 21:23:43 +0000 Subject: [PATCH 1/4] feat(web): health-first dashboard, vault tabs, collapsible worklist Redesign the local web UI around the feedback that the vault dropdown was ugly, that health (not search) should lead, and that a flat list of findings with no path to fixing them was noise. - Replace the vault dropdown with a tab row beside the wordmark: a single vault shows as a label, two or more render switchable tabs. Search moves into a compact box in the top bar, so the tab row reads as "vaults". - Make the health dashboard the default view; search is secondary and reveals results only while a query is active, returning to the board when cleared. - Add real visualisations over the existing /api/health data: an SVG connectivity ring (giant-component ratio), a segmented "needs attention" bar with a clickable legend, structural stat tiles, and a connection-depth (k-core) chart. No composite score, and note count is a denominator only, per METABOLISM's no-vanity-metric and no-single-score rules. - Collapse findings into per-type groups, closed by default, each with a remediation hint. Drilling down lists the notes with "Open in Obsidian" links so a finding leads to a fix. Pure HTML/CSS/SVG/vanilla JS, no external assets, still loopback only. No server changes; the existing endpoints already carry everything needed. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_019KxoBNM1xFYUHpYJ7CpQ9B --- web/index.html | 873 +++++++++++++++++++++++++++++-------------------- 1 file changed, 517 insertions(+), 356 deletions(-) diff --git a/web/index.html b/web/index.html index 96a7e1b..e69e281 100644 --- a/web/index.html +++ b/web/index.html @@ -5,36 +5,58 @@ hebb - + -
+
- -
-
-
+ +
+
+
hebb
- - - -
- -
- - - - - - -
-
- - -
- - -
- - -
- - - +
+ +
+ +
+
+
+ + + +
From ebcfd9a6849d72d87b8b757dd94dd4703a194dbd Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 16 Jun 2026 21:29:38 +0000 Subject: [PATCH 2/4] =?UTF-8?q?feat(web):=20add=20a=20"=E2=80=B9=20Health"?= =?UTF-8?q?=20link=20to=20get=20back=20from=20search=20results?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Searching swapped the dashboard for results, but the only ways back were the clear "×", Escape, or clicking the wordmark, none of which reads as "return to health". Add an explicit back-link above the search filters that clears the query and restores the dashboard, mirroring the wordmark behaviour with a discoverable control. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_019KxoBNM1xFYUHpYJ7CpQ9B --- web/index.html | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/web/index.html b/web/index.html index e69e281..7026710 100644 --- a/web/index.html +++ b/web/index.html @@ -145,7 +145,15 @@ main { flex: 1 1 auto; width: 100%; } /* ---- search results ---- */ - .filters { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; padding: 18px 0 4px; } + .back-health { + display: inline-flex; align-items: center; gap: 5px; margin-top: 16px; + border: 1px solid var(--border); background: var(--surface); color: var(--muted); + border-radius: 16px; padding: 5px 14px 5px 11px; font-size: 13px; cursor: pointer; + transition: border-color .12s, color .12s, background .12s; + } + .back-health:hover { border-color: var(--border-strong); color: var(--accent); background: var(--chip); } + .back-health .bk { font-size: 17px; line-height: 1; margin-top: -2px; } + .filters { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; padding: 12px 0 4px; } .chip { border: 1px solid var(--border); background: var(--chip); color: var(--chip-fg); border-radius: 16px; padding: 5px 13px; font-size: 13px; cursor: pointer; @@ -334,6 +342,9 @@