feat(dashboard): sidebar nav accordion + bottom Services launch zone#894
Merged
Conversation
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
enabled auto-merge (squash)
June 19, 2026 06:26
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.
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
NavListcomponent so the desktopSidebarand mobileNavDrawercanno 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:
#board(moved off the TopBar — ⌘B still works)3. Links work on every install
The external links come from the existing
useConfigUrls→GET /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
*_enabledflag (systemd unit active / public URL set), so a service thatisn't reachable on a given install simply isn't shown.
Tests
sidebar-accordion-v3spec: collapse/expand, auto-expand on deep link,install-derived Service hrefs, disabled-link omission.
mobile-nav-v3,memory-gate-v3,memory-view-v3,board-render-v3to expand parents before asserting sub-links / use the new Kanban entry.
Note for reviewers
The same 5 files currently also appear in PR #891 (fix/hardware-gtt-total-live)
due to an accidental
git add -Ain a shared working tree. #891 should dropthem (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