CI: fix eslint failures and serialize workflows on single runner.
CI / test (push) Has been cancelled
Deploy IFT (admin) / deploy-ift-admin (push) Failing after 1m4s

Downgrade legacy lint rules to warnings, fix AdminLayout NodeMetric typing, shared concurrency group for CI and deploy-ift.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-10 22:16:03 +03:00
parent e6c7e65982
commit 45575fdea0
4 changed files with 24 additions and 6 deletions
+3 -4
View File
@@ -3,7 +3,7 @@ import { Layout, Menu, Button, theme, notification, Avatar, Dropdown, Space, Typ
import { Outlet, useNavigate, useLocation } from 'react-router-dom';
import { useAuthStore } from '../store/authStore';
import { useAdminWebSocket } from '../hooks/useAdminWebSocket';
import { useMetricsStore } from '../store/metricsStore';
import { useMetricsStore, type NodeMetric } from '../store/metricsStore';
import MetricIndicator from '../components/MetricIndicator';
import {
DashboardOutlined,
@@ -39,7 +39,6 @@ const AdminLayout: React.FC = () => {
const [collapsed, setCollapsed] = useState(false);
const allHistory = useMetricsStore((s) => s.allHistory);
const current = useMetricsStore((s) => s.current);
const previous = useMetricsStore((s) => s.previous);
useEffect(() => {
@@ -99,7 +98,7 @@ const AdminLayout: React.FC = () => {
}, [allHistory]);
const latestByNode = React.useMemo(() => {
const map = new Map<string, typeof current>();
const map = new Map<string, NodeMetric>();
const recent = allHistory.slice(-1000);
for (let i = recent.length - 1; i >= 0; i--) {
const m = recent[i];
@@ -147,7 +146,7 @@ const AdminLayout: React.FC = () => {
return user?.id ?? '—';
};
const NodeIndicator: React.FC<{ node: string; stats: NonNullable<typeof current>; prevStats?: typeof current }> = ({
const NodeIndicator: React.FC<{ node: string; stats: NodeMetric; prevStats?: NodeMetric }> = ({
node,
stats,
prevStats,