diff --git a/ui/src/dash/board/board.css b/ui/src/dash/board/board.css index df9041d1..c8353276 100644 --- a/ui/src/dash/board/board.css +++ b/ui/src/dash/board/board.css @@ -402,3 +402,55 @@ /* ─── Responsive ─────────────────────────────────────────────────────── */ @media (max-width: 1100px) { .board .lane { width: 270px; } } + +@media (max-width: 720px) { + .board .board-top { + padding: 14px 16px 0; + } + + .board .board-bar { + flex-wrap: wrap; + gap: 10px; + padding: 10px 12px; + } + + .board .board-select { + flex: 1 1 100%; + min-width: 0; + } + + .board .board-select .bs-btn { + width: 100%; + min-width: 0; + } + + .board .board-select .bs-btn .nm { + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + .board .board-bar .bb-spacer { + flex: 1 1 auto; + } + + .board .filterbar { + gap: 10px; + } + + .board .flt, + .board .flt-search, + .board .flt-search .input { + width: 100%; + } + + .board .flt-actions { + width: 100%; + flex-wrap: wrap; + } + + .board .lanes-scroll { + padding: 4px 16px 0; + } +} diff --git a/ui/src/dash/chrome.jsx b/ui/src/dash/chrome.jsx index 5d71421d..d247d76c 100644 --- a/ui/src/dash/chrome.jsx +++ b/ui/src/dash/chrome.jsx @@ -6,13 +6,11 @@ import { useRuntimeRollup, useHealthSystem, failingChecks } from '@/api/hooks/useRuntime' import { useLogsStream } from '@/api/hooks/useLogs' -import { useSlots, useEndpoints } from '@/api/hooks/useSlots' +import { useSlots } from '@/api/hooks/useSlots' import { useModels } from '@/api/hooks/useModels' import { useMemoryEnabled } from '@/api/hooks/useMemory' import { useUpdateState } from '@/api/hooks/useUpdates' -import { useSidebarAgentRollup, useApprovalList, useApproveApproval, useDenyApproval } from '@/api/hooks/useAgents' -import { useConfigUrls } from '@/api/hooks/useConfigUrls' -import { useHardware } from '@/api/hooks/useHardware' +import { useApprovalList, useApproveApproval, useDenyApproval } from '@/api/hooks/useAgents' import { useServicesHealth } from '@/api/hooks/useServicesHealth' const { useState: useStateC, useEffect: useEffectC } = React; @@ -137,12 +135,7 @@ const Icons = { }; // ─── TopBar ─── -function TopBar({ route, hostUptime = "14d 02:11", onBell, onCmdK, onMenu, menuOpen = false, approvals = 0 }) { - // Issue #333: hostname from live /api/hardware (useHardware hook) instead of - // the legacy HAL0_DATA seed. Fall back to a neutral "hal0" placeholder - // while the first response is in flight so the layout stays stable. - const hw = useHardware(); - const hostName = hw.data?.name || "hal0"; +function TopBar({ route, onCmdK, onMenu, menuOpen = false }) { // Brand-bar version badge — live from /api/updates/state (hal0.current, // sourced from hal0.__version__) so it never goes stale; the static fallback // keeps it correct before the first response lands. @@ -186,18 +179,9 @@ function TopBar({ route, hostUptime = "14d 02:11", onBell, onCmdK, onMenu, menuO ⌘B -
- - {hostName} - · up {hostUptime} -
- {/* Mobile-only nav launcher (hidden ≤720px sidebar is gone) → opens NavDrawer. */}
{items.map(it => ( @@ -842,7 +715,6 @@ function NavDrawer({ open, route, param, onGo, onClose, onCmdK }) { ))}
- )} diff --git a/ui/src/dash/command-palette.jsx b/ui/src/dash/command-palette.jsx index cdbd3a36..6c0bfa8a 100644 --- a/ui/src/dash/command-palette.jsx +++ b/ui/src/dash/command-palette.jsx @@ -147,7 +147,7 @@ function CommandPaletteInner({ onClose }) { return (
{ if (e.target.classList.contains("cp-backdrop")) onClose(); }}> -
+
{Icons.search} "). Prefer the live stats node, fall back to the - // HAL0_DATA seed host name so the hero never shows a bare "on ". - const hostName = - hw?.host?.node || - (typeof window !== 'undefined' && window.HAL0_DATA?.host?.name) || - null; - // Reconcile raw layout with live slots const rawLayout = layoutQuery.data; const layout = useMemo(() => { @@ -630,16 +622,9 @@ function DashboardOverhaulView({ editing: editingProp, onToggleEdit }) { // padding from the app shell); every route view uses it. Keep it so the // overhaul board inherits the same chrome as the old DashboardView.
- {/* Hero strip — handoff copy: "Welcome back, halo. system steady on - ". `hero-strip` class kept alongside `dash-hero` so shell + - existing hero specs still target it. */}
- - Welcome back, halo. system steady{hostName ? ` on ` : ''} - {hostName ? {hostName} : ''} - - {heroMeta} +