Redesign the web UI: health-first dashboard, vault tabs, collapsible worklist - #7
Merged
Conversation
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 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019KxoBNM1xFYUHpYJ7CpQ9B
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 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019KxoBNM1xFYUHpYJ7CpQ9B
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ebcfd9a684
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…r vault name loads Two review fixes on the health dashboard: - A finding group with more than 50 notes previously rendered "+ N more not shown" and discarded the rest, so those notes could not be opened from the dashboard. Put the overflow behind a nested "Show N more" disclosure instead, so every affected note stays reachable. - The initial render kicked off /api/health in parallel with /api/stats, but each finding's obsidian:// link is built from the global vault name, which is the "vault" placeholder until /api/stats resolves. If health came back first, links pointed at a vault literally named "vault" and were never re-rendered. Sequence the health load after stats so links use the real vault name. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019KxoBNM1xFYUHpYJ7CpQ9B
The acceptance harness globbed for the old per-vault web service name local.hebb.<slug>.web.plist, but the web UI is now one machine-global service rendered as local.hebb.web.plist (see cli/install_test.go). The stale glob never matched, so "web launchd plist rendered" failed on every run. Match the actual file name. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019KxoBNM1xFYUHpYJ7CpQ9B
…-1rpn7v # Conflicts: # scripts/acceptance.sh
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Redesigns the local
hebb serveweb UI around three pieces of feedback: the vault dropdown was ugly, health (not search) should lead, and a flat list of findings with no path to fixing them was noise.All changes are in
web/index.html(pure HTML/CSS/SVG/vanilla JS, no external assets, still loopback only). No server changes; the existing endpoints already carry everything needed.What changed
Vault dropdown to tabs. The
<select>is gone. A tab row sits beside the wordmark: a single vault shows as a quiet label, two or more render as switchable tabs (active highlighted; switching reloads that vault's board). Search moved into a compact box in the top bar so the tab row reads as "vaults".Health-first, search secondary. The health dashboard is the default view. Search is a header box that only takes over the content while a query is active and returns to the dashboard when cleared. A
‹ Healthlink at the top of the results (plus the×,Escape, and the wordmark) brings you back.Better visualisations over the existing
/api/healthdata:Collapsible worklist. Findings are grouped by type and collapsed by default, each with a one-line summary. Opening a group reveals a remediation hint and lists the affected notes with "Open in Obsidian" links, so a finding leads to a fix rather than being a dead list.
Design constraints honoured
Per
METABOLISM.md: no single composite "health score" (a vector of named indicators instead), and note count appears only as a denominator, never as a vanity metric.Verification
go build,go vet, and the fullgo test ./...suite pass.‹ Healthback-link, and narrow-width responsive layout.🤖 Generated with Claude Code
https://claude.ai/code/session_019KxoBNM1xFYUHpYJ7CpQ9B
Generated by Claude Code