feat: add Dashboard tab with live GPU overview
Add a new Dashboard tab as the default/first tab (Dashboard - Curve - Performance - Fans) showing a full GPU overview. Backend: - New hal/dashboard.py: one-shot static GPU info via NVML (VBIOS, CUDA cores, compute capability, bus width, BAR1/CPU-accessible VRAM, Resizable BAR, PCIe max, max clocks, power limits, temp thresholds, persistence mode, fan count, serial, board part number, UUID). ROP count and VRAM type are best-effort from a per-model table since NVML does not expose them. - New /api/dashboard endpoint. - MonitoringSample gains live throttle_reasons (+label), PCIe link width/generation (downclocks when idle, so read per poll), and VRAM temp (from the MEMORY thermal sensor, if exposed). Frontend: - New Dashboard component: critical top row (throttling, voltage, GPU/VRAM temps), full live-monitor grid with sparklines, and a static GPU-information grid. Unavailable fields are omitted. - useDashboard hook + DashboardInfo type + api.client dashboard(). Also: restrict CORS to localhost origins (end-anchored), make _int_key_deltas fail closed on bad keys, and clean up lint blockers in server.py/monitoring.py.
This commit is contained in:
1 parent
3c55263250
commit
da507d55bb
11 files changed
+907
-72
No files matched your search
@@ -7,6 +7,7 @@ import type {
|
||||
ProfileData,
|
||||
FanState,
|
||||
FanPoint,
|
||||
DashboardInfo,
|
||||
} from "../types";
|
||||
|
||||
export class ApiError extends Error {
|
||||
@@ -108,6 +109,7 @@ export const api = {
|
||||
|
||||
gpus: () => get<GpuInfo[]>("/gpus"),
|
||||
gpu: (gpuIndex: number) => get<GpuInfo>("/gpu", gpuIndex),
|
||||
dashboard: (gpuIndex: number) => get<DashboardInfo>("/dashboard", gpuIndex),
|
||||
curve: (gpuIndex: number) => get<CurveState>("/curve", gpuIndex),
|
||||
ranges: (gpuIndex: number) =>
|
||||
get<Record<string, { min_khz: number; max_khz: number }>>(
|
||||
|
||||
Reference in new issue
Block a user