' +
+ ''+e.icon+' '+e.category+'
' +
+ ''+e.display+'
' +
+ ''+e.name+' - '+e.size_kb+'KB
' +
+ ''
+ ).join('');
+}
+setTimeout(() => {
+ const btn = document.querySelector('[data-view="dashboards"]');
+ if (btn) btn.addEventListener('click', () => { if (!__dashData) loadDashboards(); });
+}, 500);
+
// V114-TRAINING-LIVE: fetch real training stats
async function loadTrainingStats(){
try{
diff --git a/api/blade-actions-surfaced.json b/api/blade-actions-surfaced.json
index 40f594db7..f0d8adfa0 100644
--- a/api/blade-actions-surfaced.json
+++ b/api/blade-actions-surfaced.json
@@ -1,5 +1,5 @@
{
- "generated_at": "2026-04-21T03:30:02.781956",
+ "generated_at": "2026-04-21T03:35:02.001420",
"stats": {
"total": 43,
"pending": 34,
diff --git a/api/em-kpi-cache.json b/api/em-kpi-cache.json
index e69de29bb..b96bf54cc 100644
--- a/api/em-kpi-cache.json
+++ b/api/em-kpi-cache.json
@@ -0,0 +1,281 @@
+{
+ "ts": "2026-04-21T01:35:01+00:00",
+ "server": "s204",
+ "s204": {
+ "load": 0.86,
+ "uptime": "2026-04-14 11:51:24",
+ "ram_total_mb": 31335,
+ "ram_used_mb": 11111,
+ "ram_free_mb": 20223,
+ "disk_total": "150G",
+ "disk_used": "115G",
+ "disk_free": "30G",
+ "disk_pct": "80%",
+ "fpm_workers": 140,
+ "docker_containers": 19,
+ "cpu_cores": 8
+ },
+ "s95": {
+ "load": 0.55,
+ "disk_pct": "80%",
+ "status": "UP",
+ "ram_total_mb": 15610,
+ "ram_free_mb": 11778
+ },
+ "pmta": [
+ {
+ "name": "SER6",
+ "ip": "110.239.84.121",
+ "status": "DOWN"
+ },
+ {
+ "name": "SER7",
+ "ip": "110.239.65.64",
+ "status": "DOWN"
+ },
+ {
+ "name": "SER8",
+ "ip": "182.160.55.107",
+ "status": "DOWN"
+ },
+ {
+ "name": "SER9",
+ "ip": "110.239.86.68",
+ "status": "DOWN"
+ }
+ ],
+ "assets": {
+ "html_pages": 293,
+ "php_apis": 774,
+ "wiki_entries": 1884,
+ "vault_doctrines": 59,
+ "vault_sessions": 104,
+ "vault_decisions": 12
+ },
+ "tools": {
+ "total": 627,
+ "registry_version": "?"
+ },
+ "sovereign": {
+ "status": "UP",
+ "providers": [
+ "Cerebras-fast",
+ "Cerebras-think",
+ "Groq",
+ "Cloudflare-AI",
+ "Gemini",
+ "SambaNova",
+ "NVIDIA-NIM",
+ "Mistral",
+ "Groq-OSS",
+ "HF-Space",
+ "HF-Router",
+ "OpenRouter",
+ "GitHub-Models"
+ ],
+ "active": 13,
+ "total": 13,
+ "primary": "Cerebras-fast",
+ "cost": "0€"
+ },
+ "ethica": {
+ "total_hcps": 161731,
+ "with_email": 110567,
+ "with_phone": 155145,
+ "gap_email": 51164,
+ "pct_email": 68.4,
+ "pct_phone": 95.9,
+ "by_country": [
+ {
+ "country": "DZ",
+ "hcps": 122337,
+ "with_email": 78477,
+ "with_tel": 119394,
+ "pct_email": 64.1,
+ "pct_tel": 97.6
+ },
+ {
+ "country": "MA",
+ "hcps": 19721,
+ "with_email": 15071,
+ "with_tel": 18733,
+ "pct_email": 76.4,
+ "pct_tel": 95
+ },
+ {
+ "country": "TN",
+ "hcps": 17794,
+ "with_email": 15140,
+ "with_tel": 17018,
+ "pct_email": 85.1,
+ "pct_tel": 95.6
+ },
+ {
+ "country": "INTL",
+ "hcps": 1879,
+ "with_email": 1879,
+ "with_tel": 0,
+ "pct_email": 100,
+ "pct_tel": 0
+ }
+ ]
+ },
+ "docker": [
+ {
+ "name": "loki",
+ "status": "Up 4 days",
+ "ports": ""
+ },
+ {
+ "name": "listmonk",
+ "status": "Up 4 days",
+ "ports": ""
+ },
+ {
+ "name": "plausible-plausible-1",
+ "status": "Up 3 days",
+ "ports": ""
+ },
+ {
+ "name": "plausible-plausible-db-1",
+ "status": "Up 3 days",
+ "ports": ""
+ },
+ {
+ "name": "plausible-plausible-events-db-1",
+ "status": "Up 3 days",
+ "ports": ""
+ },
+ {
+ "name": "n8n-docker-n8n-1",
+ "status": "Up 4 days",
+ "ports": ""
+ },
+ {
+ "name": "mattermost-docker-mm-db-1",
+ "status": "Up 4 days",
+ "ports": ""
+ },
+ {
+ "name": "mattermost-docker-mattermost-1",
+ "status": "Up 4 days (healthy)",
+ "ports": ""
+ },
+ {
+ "name": "twenty",
+ "status": "Up 4 days",
+ "ports": ""
+ },
+ {
+ "name": "twenty-redis",
+ "status": "Up 4 days",
+ "ports": ""
+ },
+ {
+ "name": "langfuse",
+ "status": "Up 5 days",
+ "ports": ""
+ },
+ {
+ "name": "redis-weval",
+ "status": "Up 6 days",
+ "ports": ""
+ },
+ {
+ "name": "gitea",
+ "status": "Up 6 days",
+ "ports": ""
+ },
+ {
+ "name": "node-exporter",
+ "status": "Up 6 days",
+ "ports": ""
+ },
+ {
+ "name": "prometheus",
+ "status": "Up 6 days",
+ "ports": ""
+ },
+ {
+ "name": "searxng",
+ "status": "Up 6 days",
+ "ports": ""
+ },
+ {
+ "name": "uptime-kuma",
+ "status": "Up 25 hours (healthy)",
+ "ports": ""
+ },
+ {
+ "name": "vaultwarden",
+ "status": "Up 6 days (healthy)",
+ "ports": ""
+ },
+ {
+ "name": "qdrant",
+ "status": "Up 6 days",
+ "ports": ""
+ }
+ ],
+ "crons": {
+ "active": 35
+ },
+ "git": {
+ "head": "b793fa178 auto-sync-0335",
+ "dirty": 3,
+ "status": "DIRTY"
+ },
+ "nonreg": {
+ "total": 153,
+ "passed": 153,
+ "score": "100%"
+ },
+ "services": [
+ {
+ "name": "DeerFlow",
+ "port": 3002,
+ "status": "UP"
+ },
+ {
+ "name": "DeerFlow API",
+ "port": 8001,
+ "status": "UP"
+ },
+ {
+ "name": "Qdrant",
+ "port": 6333,
+ "status": "UP"
+ },
+ {
+ "name": "Ollama",
+ "port": 11434,
+ "status": "UP"
+ },
+ {
+ "name": "Redis",
+ "port": 6379,
+ "status": "UP"
+ },
+ {
+ "name": "Sovereign",
+ "port": 4000,
+ "status": "UP"
+ },
+ {
+ "name": "SearXNG",
+ "port": 8080,
+ "status": "UP"
+ }
+ ],
+ "whisper": {
+ "binary": "COMPILED",
+ "model": "142MB"
+ },
+ "grand_total": 3656,
+ "health": {
+ "score": 5,
+ "max": 6,
+ "pct": 83
+ },
+ "elapsed_ms": 11092
+}
\ No newline at end of file
diff --git a/api/v83-business-kpi-latest.json b/api/v83-business-kpi-latest.json
index 555f3b197..d9948279e 100644
--- a/api/v83-business-kpi-latest.json
+++ b/api/v83-business-kpi-latest.json
@@ -1,7 +1,7 @@
{
"ok": true,
"version": "V83-business-kpi",
- "ts": "2026-04-21T01:34:03+00:00",
+ "ts": "2026-04-21T01:35:17+00:00",
"summary": {
"total_categories": 8,
"total_kpis": 64,
diff --git a/api/wave-wiring-queue.json b/api/wave-wiring-queue.json
index fa9c12988..bdcd3904d 100644
--- a/api/wave-wiring-queue.json
+++ b/api/wave-wiring-queue.json
@@ -7816,5 +7816,18 @@
"status": "PENDING_APPROVAL",
"created_at": "2026-04-20T23:57:30+00:00",
"source": "opus4-autowire-early-v2"
+ },
+ "598": {
+ "name": "zombie_killer_status",
+ "triggers": [
+ "zombie killer",
+ "zombie playwright",
+ "kill zombies",
+ "zombie status"
+ ],
+ "cmd": "echo v9.58 zombie killer live \/opt\/weval-ops\/zombie-killer.py + cron 30min - kills playwright drivers >2h + orphan chrome-headless >1h ppid=1 - log \/var\/log\/weval-zombie-killer.log - first run killed 2 zombies (from 14avr and 16avr) - load 4.96 to 0.86 - swap 3.5gi to 3.2gi",
+ "status": "PENDING_APPROVAL",
+ "created_at": "2026-04-21T01:35:17+00:00",
+ "source": "opus4-autowire-early-v2"
}
}
\ No newline at end of file
diff --git a/api/wired-pending/intent-opus4-zombie_killer_status.php b/api/wired-pending/intent-opus4-zombie_killer_status.php
new file mode 100644
index 000000000..1fc47f335
--- /dev/null
+++ b/api/wired-pending/intent-opus4-zombie_killer_status.php
@@ -0,0 +1,15 @@
+ 'zombie_killer_status',
+ 'triggers' =>
+ array (
+ 0 => 'zombie killer',
+ 1 => 'zombie playwright',
+ 2 => 'kill zombies',
+ 3 => 'zombie status',
+ ),
+ 'cmd' => 'echo v9.58 zombie killer live /opt/weval-ops/zombie-killer.py + cron 30min - kills playwright drivers >2h + orphan chrome-headless >1h ppid=1 - log /var/log/weval-zombie-killer.log - first run killed 2 zombies (from 14avr and 16avr) - load 4.96 to 0.86 - swap 3.5gi to 3.2gi',
+ 'status' => 'EXECUTED',
+ 'created_at' => '2026-04-21T01:35:17+00:00',
+ 'source' => 'opus4-autowire-early-v2',
+);