auto-commit via WEVIA vault_git intent 2026-04-19T17:27:15+00:00
Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled

This commit is contained in:
opus
2026-04-19 19:27:15 +02:00
parent 918b5cef6e
commit 0b8db3778f
7 changed files with 104 additions and 5 deletions

View File

@@ -1,15 +1,15 @@
{
"generated_at": "2026-04-19T19:20:02.290699",
"generated_at": "2026-04-19T19:25:02.094771",
"stats": {
"total": 468,
"pending": 897,
"total": 469,
"pending": 899,
"kaouther_surfaced": 29,
"chrome_surfaced": 10,
"notif_only_done": 0,
"autofix_archived": 0,
"cerebras_archived": 0,
"older_3d_archived": 0,
"unknown": 429,
"unknown": 430,
"errors": 0
},
"actions": [

View File

@@ -0,0 +1,11 @@
{
"id": "task_20260419172502_08296f",
"name": "Blade self-heal 19:25",
"type": "powershell",
"command": "\n# Blade self-heal\nWrite-Host \"Self-heal triggered $(Get-Date)\"\n$agentProc = Get-Process powershell | Where-Object { $_.CommandLine -match 'sentinel-agent' }\nif (!$agentProc) {\n Write-Host \"Agent not running, starting...\"\n Start-Process powershell -ArgumentList \"-ExecutionPolicy\",\"Bypass\",\"-File\",\"C:\\ProgramData\\WEVAL\\sentinel-agent.ps1\" -WindowStyle Hidden\n}\n# Clear stale tasks > 3 days locally\n$cutoff = (Get-Date).AddDays(-3)\nGet-ChildItem \"C:\\ProgramData\\WEVAL\\tasks\\*.json\" -ErrorAction SilentlyContinue | Where-Object { $_.LastWriteTime -lt $cutoff } | Move-Item -Destination \"C:\\ProgramData\\WEVAL\\tasks\\archived\\\" -Force -ErrorAction SilentlyContinue\nWrite-Host \"Self-heal complete\"\n",
"cmd": "\n# Blade self-heal\nWrite-Host \"Self-heal triggered $(Get-Date)\"\n$agentProc = Get-Process powershell | Where-Object { $_.CommandLine -match 'sentinel-agent' }\nif (!$agentProc) {\n Write-Host \"Agent not running, starting...\"\n Start-Process powershell -ArgumentList \"-ExecutionPolicy\",\"Bypass\",\"-File\",\"C:\\ProgramData\\WEVAL\\sentinel-agent.ps1\" -WindowStyle Hidden\n}\n# Clear stale tasks > 3 days locally\n$cutoff = (Get-Date).AddDays(-3)\nGet-ChildItem \"C:\\ProgramData\\WEVAL\\tasks\\*.json\" -ErrorAction SilentlyContinue | Where-Object { $_.LastWriteTime -lt $cutoff } | Move-Item -Destination \"C:\\ProgramData\\WEVAL\\tasks\\archived\\\" -Force -ErrorAction SilentlyContinue\nWrite-Host \"Self-heal complete\"\n",
"priority": "high",
"status": "pending",
"created": "2026-04-19T17:25:02+00:00",
"created_by": "blade-control-ui"
}

View File

@@ -0,0 +1,35 @@
{
"ts": "2026-04-19T17:25:04.867Z",
"test": "v7.7 FINAL cumul 30 mixed + 4 pages",
"tests": [
{
"name": "v77_30_mixed_matched",
"pass": true,
"matched": 30,
"total": 30
},
{
"name": "erp",
"pass": true,
"canvases": 8
},
{
"name": "drill",
"pass": true,
"cards": 9
},
{
"name": "sm",
"pass": true,
"total": "260"
},
{
"name": "wtp",
"pass": true,
"title": "WEVAL — Login"
}
],
"total": 5,
"pass": 5,
"fail": 0
}

35
api/v77-latest.json Normal file
View File

@@ -0,0 +1,35 @@
{
"ts": "2026-04-19T17:25:04.867Z",
"test": "v7.7 FINAL cumul 30 mixed + 4 pages",
"tests": [
{
"name": "v77_30_mixed_matched",
"pass": true,
"matched": 30,
"total": 30
},
{
"name": "erp",
"pass": true,
"canvases": 8
},
{
"name": "drill",
"pass": true,
"cards": 9
},
{
"name": "sm",
"pass": true,
"total": "260"
},
{
"name": "wtp",
"pass": true,
"title": "WEVAL — Login"
}
],
"total": 5,
"pass": 5,
"fail": 0
}

View File

@@ -1,7 +1,7 @@
{
"ok": true,
"version": "V83-business-kpi",
"ts": "2026-04-19T17:20:14+00:00",
"ts": "2026-04-19T17:25:13+00:00",
"summary": {
"total_categories": 7,
"total_kpis": 56,

View File

@@ -233,6 +233,24 @@ $alerts_dg[] = ['level'=>'medium', 'icon'=>'🎯', 'title'=>'ROI Simulator V67 p
'action_link'=>'/agent-roi-simulator.html', 'owner'=>'Yacine', 'deadline'=>'J+7'];
// Sort alerts by level
// === V37_ALERT_ACK_FILTER 19avr · doctrine 13+14 · reading /tmp/dg-alerts-ack.json ===
$ack_file = '/tmp/dg-alerts-ack.json';
$acks = [];
if (file_exists($ack_file)) {
$acks_raw = @json_decode(@file_get_contents($ack_file), true);
if (is_array($acks_raw)) $acks = $acks_raw;
}
$alerts_dg = array_values(array_filter($alerts_dg, function($a) use ($acks) {
$key = md5($a['title'] ?? '');
if (isset($acks[$key])) {
$ack_ts = strtotime($acks[$key]['ts'] ?? '0');
$expires = (int)($acks[$key]['expires_h'] ?? 24) * 3600;
if (time() - $ack_ts < $expires) return false; // filtered out (acknowledged)
}
return true;
}));
// === END V37_ALERT_ACK_FILTER ===
usort($alerts_dg, function($a, $b) {
$order = ['critical'=>0, 'high'=>1, 'medium'=>2, 'low'=>3];
return $order[$a['level']] <=> $order[$b['level']];