feat(dash): mirror snapshot/memmap/throughput sidebar onto /slots#357
Merged
Conversation
Carry the dashboard's right-column sidebar over to /slots so the page
has the same at-a-glance health surface (slot snapshot + memory map +
throughput) without context-switching to the dashboard. SlotsView wraps
its existing group sections in `dash > dash-main + dash-side`; the
skip-path render gets the same treatment so the sidebar appears even
before any slot is configured. main.jsx threads `onGo` into SlotsView
so snapshot-row clicks navigate; SlotsView falls back to hash routing
if `onGo` is missing.
Also fix the snapshot strip to use slotIndicator() instead of raw
slot.state — the strip was emitting `dot ready`/`dot offline`/etc.
which fell through the older green-pulse vocabulary and ignored the
2026-05-27 dot-state spec (loaded-but-idle is yellow, only an
in-flight request is green pulse). The strip now mirrors SlotCard:
green pulse during serving, yellow for ready/idle/stale, amber-pulse
for warming, red for error, grey for off/offline. Status label inline
matches the dot colour and the tooltip surfaces the indicator's
contextual message ("Loaded — last used 23 min ago" etc.). Ready
count counts cls in {serving, stale} so Lemonade-evicted slots
register as ready (they hot-reload on next request).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
thinmintdev
added a commit
that referenced
this pull request
May 28, 2026
…rough + gut installer auth section (#390) - docs/operate/lemonade.md (new, .md canonical): operator reference for the v0.2 Lemonade runtime — what it is, where state lives, the /v1/* proxy + dispatcher fallthrough (PRs #248/#277), slot ↔ Lemonade model mapping (PRs #281/#282), max_loaded_models = 8 LRU cap (PR #283), per-type LRU eviction per ADR-0008 (supersedes nuclear-evict ADR-0007), OFFLINE-on-eviction (PR #276), and the three known v0.3 caveats (Vulkan KV gauge missing, whisper RUNPATH workaround, GPU cleanup unload hang). - docs/dashboard/v3.md (new, .md canonical, new docs/dashboard/ dir): page-by-page tour of the v3 React dashboard shipped in v0.3.0-alpha.1 (PR #235). Covers the shell + Mock-badge convention, /dashboard (system overview after #356), /chat (real surface per #309/#314/#315/#351), /slots (sidebar mirror per #357 + #344 UX sweep), /models (#313/#319/#353), /mcp (#304/#300), /agents (Peers per #299), /memory (graph #297, throughput #308), Settings (no Auth tab post-ADR-0012), and the footer journal (Epic #322 — PRs #321/#328/#329/#330/#332). Mock-fallback issues linked via the dashboard-v3 label, not enumerated. - installer/README.md: gut ~95 lines of stale auth prose (Caddy, Bearer-token mint/use/revoke, first-run OTP claim wizard, HAL0_AUTH_ENABLED/HAL0_AUTH_DISABLED, password recovery, basic_auth upgrade path, the TLS recipe). Replace with one paragraph pointing at docs/operate/auth.mdx for the reverse-proxy recipe and docs/agents/identity.md for the X-hal0-Agent identity model. Auth was removed in v0.3.0-alpha.1 per ADR-0012; the README hadn't caught up. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Summary
SlotsViewin the samedash > dash-main + dash-sidegrid asDashboardViewso/slotscarries the right-column sidebar over — slot snapshot, memory map, throughput. Skip-path render gets the same treatment so the sidebar shows even before a slot is configured.SnapshotStripto drive offslotIndicator(slot)instead of rawslot.state. The strip was renderingdot ready/dot offline/etc., which fell through the pre-2026-05-27 green-pulse vocabulary and ignored the dot-state spec (loaded-but-idle is yellow; only an in-flight request is green pulse). Now mirrors SlotCard: green pulse during serving, yellow for ready/idle/stale, amber-pulse for warming, red for error, grey for off. Status label tinted to match; tooltip shows the indicator's contextual message ("Loaded — last used 23 min ago" etc.). Ready count countscls in {serving, stale}so Lemonade-evicted slots register as ready (they hot-reload on next request).main.jsxthreadsonGointoSlotsViewso snapshot rows navigate;SlotsViewfalls back to hash routing ifonGois missing.Test plan
npm run typecheck— cleannpm run build— clean (one CSS chunk, one JS chunk, same gzip footprint)npx playwright test specs/slots-v3.spec.ts specs/slot-indicator.spec.ts specs/dashboard-v3.spec.ts— 21/21 pass/#dashboardthen/#slots— confirm sidebar is identical, status labels readserving/ready/idle/warming/error/off, dot colours match the slot cards🤖 Generated with Claude Code