From 4602f978367604e386eb86bb1259e37d71fd0cf4 Mon Sep 17 00:00:00 2001 From: Michael Chus Date: Sun, 5 Apr 2026 22:10:42 +0300 Subject: [PATCH] Enforce sequential task orchestration --- audit/internal/webui/pages.go | 243 ++++++++++++++---- audit/internal/webui/server_test.go | 6 +- audit/internal/webui/tasks.go | 30 +-- .../hooks/normal/9001-wallpaper.hook.chroot | 24 +- 4 files changed, 213 insertions(+), 90 deletions(-) diff --git a/audit/internal/webui/pages.go b/audit/internal/webui/pages.go index 18ec4d3..b70f05b 100644 --- a/audit/internal/webui/pages.go +++ b/audit/internal/webui/pages.go @@ -1068,17 +1068,23 @@ func renderValidate(opts HandlerOptions) string { `
-` + renderSATCard("nvidia", "NVIDIA GPU", "runNvidiaValidateSet('nvidia')", "", renderValidateCardBody( +` + renderSATCard("nvidia-selection", "NVIDIA GPU Selection", "", "", renderValidateCardBody( + inv.NVIDIA, + `Select which NVIDIA GPUs to include in Validate. The same selection is used by both NVIDIA GPU cards below and by Validate one by one.`, + `nvidia-smi --query-gpu=index,name,memory.total`, + `

Loading NVIDIA GPUs…

`, + )) + + renderSATCard("nvidia", "NVIDIA GPU", "runNvidiaValidateSet('nvidia')", "", renderValidateCardBody( inv.NVIDIA, `Runs NVIDIA diagnostics and board inventory checks.`, `nvidia-smi, dmidecode, dcgmi diag`, - `Runs one GPU at a time. Diag level is taken from Validate Profile.`, + `Runs one GPU at a time on the selected NVIDIA GPUs. Diag level is taken from Validate Profile.`, )) + renderSATCard("nvidia-targeted-stress", "NVIDIA GPU Targeted Stress", "runNvidiaValidateSet('nvidia-targeted-stress')", "", renderValidateCardBody( inv.NVIDIA, `Runs a controlled NVIDIA DCGM load in Validate to check stability under moderate stress.`, `dcgmi diag targeted_stress`, - `Runs one GPU at a time with the fixed DCGM targeted stress recipe.`, + `Runs one GPU at a time on the selected NVIDIA GPUs with the fixed DCGM targeted stress recipe.`, )) + `
@@ -1100,6 +1106,8 @@ func renderValidate(opts HandlerOptions) string { .validate-card-body { padding:0; } .validate-card-section { padding:12px 16px 0; } .validate-card-section:last-child { padding-bottom:16px; } +.sat-gpu-row { display:flex; align-items:flex-start; gap:8px; padding:6px 0; cursor:pointer; font-size:13px; } +.sat-gpu-row input[type=checkbox] { width:16px; height:16px; margin-top:2px; flex-shrink:0; } @media(max-width:900px){ .validate-profile-body { grid-template-columns:1fr; } }