diff --git a/src/ui/dashboard/DashboardTab.tsx b/src/ui/dashboard/DashboardTab.tsx index 80ec56c5..9ffe7afe 100644 --- a/src/ui/dashboard/DashboardTab.tsx +++ b/src/ui/dashboard/DashboardTab.tsx @@ -531,6 +531,10 @@ function HostStatusCard({ ); } +function isStatusCheckEnabled(host: Host): boolean { + return host.statsConfig?.statusCheckEnabled !== false; +} + function RecentActivityCard({ activity, hosts, @@ -1283,6 +1287,7 @@ export function DashboardTab({ Map >(new Map()); const viewerSessionsRef = useRef>(new Map()); + const statusCheckHosts = hosts.filter(isStatusCheckEnabled); const fetchMetrics = useCallback(async (hostList: Host[]) => { let statuses: Record = {}; @@ -1342,8 +1347,9 @@ export function DashboardTab({ const load = async () => { const raw = await getSSHHosts().catch(() => []); const mapped = raw.map(sshHostToHost); + const statusHosts = mapped.filter(isStatusCheckEnabled); if (mounted) setHosts(mapped); - fetchMetrics(mapped).catch(() => {}); + fetchMetrics(statusHosts).catch(() => {}); }; load(); @@ -1396,8 +1402,9 @@ export function DashboardTab({ const metricsInterval = setInterval(async () => { const raw = await getSSHHosts().catch(() => []); const mapped = raw.map(sshHostToHost); + const statusHosts = mapped.filter(isStatusCheckEnabled); if (mounted) setHosts(mapped); - fetchMetrics(mapped).catch(() => {}); + fetchMetrics(statusHosts).catch(() => {}); }, 30000); return () => { @@ -1707,7 +1714,7 @@ export function DashboardTab({ )} {slot.id === "host_status" && (