Skip to content

feat(dashboard): sidebar nav accordion + bottom Services launch zone#894

Merged
thinmintdev merged 2 commits into
mainfrom
feat/sidebar-accordion-nav
Jun 19, 2026
Merged

feat(dashboard): sidebar nav accordion + bottom Services launch zone#894
thinmintdev merged 2 commits into
mainfrom
feat/sidebar-accordion-nav

Conversation

@thinmintdev

Copy link
Copy Markdown
Contributor

What

Two sidebar changes, plus an install-portability fix for service links.

1. Accordion nav

Slots ▸ Endpoints/Profiles and Agents ▸ Memory/MCP sub-links now collapse into
an accordion — they stay hidden until the parent row is opened via its caret
(chevron rotates), and the section you navigate into auto-expands. Factored a
shared NavList component so the desktop Sidebar and mobile NavDrawer can
no longer drift (they previously duplicated the nav markup behind a "never
drift" comment).

2. Services launch zone

A separate group pinned to the sidebar bottom, fenced off from the app/config
nav by a divider:

  • Kanban → internal #board (moved off the TopBar — ⌘B still works)
  • OpenWebUI + Hermes Dash → external shortcuts

3. Links work on every install

The external links come from the existing useConfigUrlsGET /api/config/urls,
whose backend (_resolve_host) derives the hostname from the request (localhost,
LAN IP, mDNS, or reverse-proxy domain) — nothing hardcoded. Each row is gated by
its *_enabled flag (systemd unit active / public URL set), so a service that
isn't reachable on a given install simply isn't shown.

Tests

  • New sidebar-accordion-v3 spec: collapse/expand, auto-expand on deep link,
    install-derived Service hrefs, disabled-link omission.
  • Updated mobile-nav-v3, memory-gate-v3, memory-view-v3, board-render-v3
    to expand parents before asserting sub-links / use the new Kanban entry.
  • Full e2e suite green; build + typecheck clean.

Note for reviewers

The same 5 files currently also appear in PR #891 (fix/hardware-gtt-total-live)
due to an accidental git add -A in a shared working tree. #891 should drop
them (restore to main) so it stays hardware-only; this PR is the canonical home
for the sidebar work. De-scope #891 before merging either to avoid a conflict.

🤖 Generated with Claude Code

Collapse the Slots ▸ Endpoints/Profiles and Agents ▸ Memory/MCP sub-links
into an accordion: sub-links stay hidden until the parent row is opened via
its caret, and the section you navigate into auto-expands. Factor the shared
NavList component so the desktop Sidebar and mobile NavDrawer can no longer
drift (they previously duplicated the nav markup).

Add a separate Services zone pinned to the sidebar bottom, fenced off from the
app/config nav: Kanban (internal #board, moved off the TopBar — ⌘B still works)
plus external OpenWebUI + Hermes shortcuts. The external links are resolved by
GET /api/config/urls, whose backend derives the hostname from the request, so
they work on every install; each row is gated by its *_enabled flag.

Tests: new sidebar-accordion-v3 spec (collapse/expand, auto-expand on deep
link, install-derived Service links, disabled-link omission); existing
nav/board/memory specs updated to expand parents before asserting sub-links.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@thinmintdev
thinmintdev enabled auto-merge (squash) June 19, 2026 06:26
@thinmintdev
thinmintdev merged commit b7f5be5 into main Jun 19, 2026
3 checks passed
@thinmintdev
thinmintdev deleted the feat/sidebar-accordion-nav branch June 23, 2026 21:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant