AUTO-BACKUP 20260407-2350

This commit is contained in:
WEVIA-Bot
2026-04-07 23:50:02 +02:00
parent 7f7d729e1e
commit 338a6670a4
20 changed files with 145 additions and 280 deletions

View File

@@ -1 +1 @@
{"timestamp":"2026-04-07 21:39:43","scan_ms":8161,"servers":{"s204":{"ip":"204.168.152.13","label":"S204 Primary","services":[{"name":"nginx","status":"active","port":"80\/443"},{"name":"php-fpm","status":"active","port":"9000"},{"name":"postgresql-16","status":"active","port":"5432"},{"name":"deerflow","status":"active","port":"2024"},{"name":"deerflow-gw","status":"active","port":"8001"},{"name":"deerflow-fe","status":"active","port":"3000"},{"name":"ollama","status":"active","port":"11434","info":"10 models"}],"docker":[{"name":"authentik-db","status":"Up 25 hours"},{"name":"authentik-redis","status":"Up 25 hours"},{"name":"authentik-server","status":"Up 19 minutes (healthy)"},{"name":"authentik-worker","status":"Up 19 minutes (healthy)"},{"name":"chatwoot-redis","status":"Up 25 hours"},{"name":"langfuse","status":"Up 25 hours"},{"name":"loki","status":"Up 25 hours"},{"name":"mattermost","status":"Up About an hour (healthy)"},{"name":"n8n","status":"Up 25 hours"},{"name":"node-exporter","status":"Up 25 hours"},{"name":"plausible-db","status":"Up 25 hours"},{"name":"plausible-events","status":"Up 25 hours"},{"name":"plausible","status":"Up 25 hours"},{"name":"prometheus","status":"Up 25 hours"},{"name":"qdrant","status":"Up 25 hours"},{"name":"searxng","status":"Up 25 hours"},{"name":"twenty-redis","status":"Up 25 hours"},{"name":"twenty","status":"Up 25 hours"},{"name":"uptime-kuma","status":"Up 25 hours (healthy)"},{"name":"vaultwarden","status":"Up 25 hours (healthy)"}]},"s95":{"ip":"95.216.167.89","label":"S95 WEVADS","services":[{"name":"kumomta","status":"active","port":"587"},{"name":"apache2","status":"active","port":"80"},{"name":"postgresql","status":"active","port":"5432"},{"name":"postfix","status":"active","port":"2525"},{"name":"pmta","status":"active","port":"25"},{"name":"sentinel","status":"active","port":"5890"},{"name":"adx","status":"active","port":"5821"},{"name":"arsenal","status":"active","port":"5822"}],"docker":[{"name":"listmonk_db","status":"Up 4 days"},{"name":"listmonk","status":"Up 4 days"}]},"s151":{"ip":"151.80.235.110","label":"S151 OVH","services":[{"name":"nginx","status":"active","port":"80"},{"name":"php-fpm","status":"active","port":"9000"},{"name":"postgresql","status":"active","port":"5432"},{"name":"ollama","status":"active","port":"11434"}],"docker":[{"name":"ollama","status":"Up 2 weeks"}]},"blade":{"ip":"local","label":"Razer Blade","services":[{"name":"Sentinel Agent","status":"active","port":"\u2014","info":"C:\\ProgramData\\WEVAL\\sentinel-agent.ps1"}],"docker":[]}},"crons":[{"server":"S95","user":"root","schedule":"*\/30 * * * *","command":"php \/opt\/wevads\/scripts\/ethica\/ethica-validator.php 500 >> \/opt\/wevads\/logs\/ethica-validator.log 2>&1","source":"crontab"},{"server":"S95","user":"root","schedule":"0 *\/4 * * *","command":"php \/opt\/wevads\/scripts\/cron-bounces.php >> \/var\/log\/wevads\/bounces.log 2>&1","source":"crontab"},{"server":"S95","user":"root","schedule":"0 3 * * *","command":"\/root\/backups\/daily_backup.sh","source":"crontab"},{"server":"S95","user":"root","schedule":"0 4 * * *","command":"\/opt\/wevads\/scripts\/auto-backup-github.sh >> \/var\/log\/wevads\/backup.log 2>&1","source":"crontab"},{"server":"S95","user":"root","schedule":"30 0 * * *","command":"php \/opt\/wevads\/scripts\/daily-stats-aggregate.php >> \/var\/log\/wevads\/daily-stats.log 2>&1","source":"crontab"},{"server":"S95","user":"root","schedule":"30 1 * * *","command":"php \/opt\/wevads\/scripts\/cron-engagement.php >> \/var\/log\/wevads\/engagement.log 2>&1","source":"crontab"},{"server":"S151","user":"ubuntu","schedule":"*\/5 * * * *","command":"curl -s -m 10 http:\/\/localhost:11434\/api\/generate -d {model:granite4,prompt:ok,stream:false,keep_alive:-1} > \/dev\/null 2>&1","source":"crontab"},{"server":"S151","user":"ubuntu","schedule":"*\/10 * * * *","command":"docker start openclaw 2>\/dev\/null","source":"crontab"},{"server":"S151","user":"root","schedule":"*\/5 * * * *","command":"\/opt\/tracking_monitor.sh","source":"crontab"},{"server":"Blade","user":"SYSTEM","schedule":"*\/60s loop","command":"sentinel-agent.ps1 (auto-sync S204)","source":"Task Scheduler"}],"stats":{"total_crons":10,"total_services":20,"total_docker":23}}
{"timestamp":"2026-04-07 21:50:01","scan_ms":7871,"servers":{"s204":{"ip":"204.168.152.13","label":"S204 Primary","services":[{"name":"nginx","status":"active","port":"80\/443"},{"name":"php-fpm","status":"active","port":"9000"},{"name":"postgresql-16","status":"active","port":"5432"},{"name":"deerflow","status":"active","port":"2024"},{"name":"deerflow-gw","status":"active","port":"8001"},{"name":"deerflow-fe","status":"active","port":"3000"},{"name":"ollama","status":"active","port":"11434","info":"10 models"}],"docker":[{"name":"authentik-db","status":"Up 26 hours"},{"name":"authentik-redis","status":"Up 26 hours"},{"name":"authentik-server","status":"Up 4 minutes (healthy)"},{"name":"authentik-worker","status":"Up 4 minutes (healthy)"},{"name":"chatwoot-redis","status":"Up 26 hours"},{"name":"langfuse","status":"Up 26 hours"},{"name":"loki","status":"Up 26 hours"},{"name":"mattermost","status":"Up About an hour (healthy)"},{"name":"n8n","status":"Up 26 hours"},{"name":"node-exporter","status":"Up 26 hours"},{"name":"plausible-db","status":"Up 26 hours"},{"name":"plausible-events","status":"Up 26 hours"},{"name":"plausible","status":"Up 26 hours"},{"name":"prometheus","status":"Up 26 hours"},{"name":"qdrant","status":"Up 26 hours"},{"name":"searxng","status":"Up 26 hours"},{"name":"twenty-redis","status":"Up 26 hours"},{"name":"twenty","status":"Up 26 hours"},{"name":"uptime-kuma","status":"Up 26 hours (healthy)"},{"name":"vaultwarden","status":"Up 26 hours (healthy)"}]},"s95":{"ip":"95.216.167.89","label":"S95 WEVADS","services":[{"name":"kumomta","status":"active","port":"587"},{"name":"apache2","status":"active","port":"80"},{"name":"postgresql","status":"active","port":"5432"},{"name":"postfix","status":"active","port":"2525"},{"name":"pmta","status":"active","port":"25"},{"name":"sentinel","status":"active","port":"5890"},{"name":"adx","status":"active","port":"5821"},{"name":"arsenal","status":"active","port":"5822"}],"docker":[{"name":"listmonk_db","status":"Up 4 days"},{"name":"listmonk","status":"Up 4 days"}]},"s151":{"ip":"151.80.235.110","label":"S151 OVH","services":[{"name":"nginx","status":"active","port":"80"},{"name":"php-fpm","status":"active","port":"9000"},{"name":"postgresql","status":"active","port":"5432"},{"name":"ollama","status":"active","port":"11434"}],"docker":[{"name":"ollama","status":"Up 2 weeks"}]},"blade":{"ip":"local","label":"Razer Blade","services":[{"name":"Sentinel Agent","status":"active","port":"\u2014","info":"C:\\ProgramData\\WEVAL\\sentinel-agent.ps1"}],"docker":[]}},"crons":[{"server":"S95","user":"root","schedule":"*\/30 * * * *","command":"php \/opt\/wevads\/scripts\/ethica\/ethica-validator.php 500 >> \/opt\/wevads\/logs\/ethica-validator.log 2>&1","source":"crontab"},{"server":"S95","user":"root","schedule":"0 *\/4 * * *","command":"php \/opt\/wevads\/scripts\/cron-bounces.php >> \/var\/log\/wevads\/bounces.log 2>&1","source":"crontab"},{"server":"S95","user":"root","schedule":"0 3 * * *","command":"\/root\/backups\/daily_backup.sh","source":"crontab"},{"server":"S95","user":"root","schedule":"0 4 * * *","command":"\/opt\/wevads\/scripts\/auto-backup-github.sh >> \/var\/log\/wevads\/backup.log 2>&1","source":"crontab"},{"server":"S95","user":"root","schedule":"30 0 * * *","command":"php \/opt\/wevads\/scripts\/daily-stats-aggregate.php >> \/var\/log\/wevads\/daily-stats.log 2>&1","source":"crontab"},{"server":"S95","user":"root","schedule":"30 1 * * *","command":"php \/opt\/wevads\/scripts\/cron-engagement.php >> \/var\/log\/wevads\/engagement.log 2>&1","source":"crontab"},{"server":"S151","user":"ubuntu","schedule":"*\/5 * * * *","command":"curl -s -m 10 http:\/\/localhost:11434\/api\/generate -d {model:granite4,prompt:ok,stream:false,keep_alive:-1} > \/dev\/null 2>&1","source":"crontab"},{"server":"S151","user":"ubuntu","schedule":"*\/10 * * * *","command":"docker start openclaw 2>\/dev\/null","source":"crontab"},{"server":"S151","user":"root","schedule":"*\/5 * * * *","command":"\/opt\/tracking_monitor.sh","source":"crontab"},{"server":"Blade","user":"SYSTEM","schedule":"*\/60s loop","command":"sentinel-agent.ps1 (auto-sync S204)","source":"Task Scheduler"}],"stats":{"total_crons":10,"total_services":20,"total_docker":23}}

View File

@@ -1,11 +1,11 @@
{
"ts": "2026-04-07T21:39:24+00:00",
"ts": "2026-04-07T21:49:52+00:00",
"hostname": "LAPTOP-VE75QUHF",
"cpu": "100%",
"ram": "90% (16GB)",
"disk": "?",
"uptime": "0d20h47m",
"ram": "84% (16GB)",
"disk": "83% (464GB)",
"uptime": "0d 20h",
"user": "Yace",
"ip": "41.248.190.86",
"agent_version": "2.0"
"agent_version": "2.2"
}

View File

@@ -1,10 +1,10 @@
{
"ts": "2026-04-07T23:32:02",
"ts": "2026-04-07T23:47:01",
"fixes": [
{
"type": "opcache",
"action": "reset",
"files": 1
"files": 4
}
],
"total_fixes": 0,

1
api/mega-page-test.json Normal file
View File

@@ -0,0 +1 @@
{"pass":122,"fail":0,"total":122,"rate":100,"date":"2026-04-07T23:46:37+02:00"}

46
api/mega-page-test.sh Executable file
View File

@@ -0,0 +1,46 @@
#!/bin/bash
echo "╔══════════════════════════════════════════════════════════════╗"
echo "║ MEGA PAGE TEST — 210 PAGES — $(date '+%H:%M')"
echo "╠══════════════════════════════════════════════════════════════╣"
PASS=0; FAIL=0; TOTAL=0
check_page() {
TOTAL=$((TOTAL+1))
R=$(curl -so /dev/null -w "%{http_code}" "https://weval-consulting.com/$1" --max-time 3 2>/dev/null)
if [ "$R" = "200" -o "$R" = "302" ]; then
PASS=$((PASS+1))
else
FAIL=$((FAIL+1))
echo "║ ❌ $R $1"
fi
}
echo "║ --- CORE PAGES ---"
for P in index.html l99-brain.html wevia-master.html sovereign-claude.html claw-chat.html openclaw.html wevcode.html l99-saas.html enterprise-model.html wevia-meeting-rooms.html wevia-console.html wevia-cortex.html realtime-monitor-v3.html ai-benchmark.html admin.html login.html pricing.html booking.html; do
check_page "$P"
done
echo "║ Core: $PASS/$TOTAL"
echo "║ --- PRODUCTS ---"
for P in $(ls /var/www/html/products/*.html 2>/dev/null | sed 's|/var/www/html/||'); do
check_page "$P"
done
echo "║ Products: $PASS/$TOTAL cumul"
echo "║ --- SSO PROTECTED ---"
for P in ops-center.html security-dashboard.html mega-command-center.html ethica-hcp-manager.html command-center.html nonreg.html infra-command.html; do
check_page "$P"
done
echo "║ --- SUBDOMAINS ---"
for D in auth analytics mm n8n paperclip deerflow mirofish crm monitor; do
TOTAL=$((TOTAL+1))
R=$(curl -so /dev/null -w "%{http_code}" "https://$D.weval-consulting.com/" --max-time 3 2>/dev/null)
if [ "$R" = "200" -o "$R" = "302" ]; then PASS=$((PASS+1)); else FAIL=$((FAIL+1)); echo "║ ❌ $R $D.weval-consulting.com"; fi
done
echo "╠══════════════════════════════════════════════════════════════╣"
echo "║ SCORE: $PASS PASS / $FAIL FAIL / $TOTAL TOTAL"
echo "║ RATE: $(( PASS * 100 / TOTAL ))%"
echo "╚══════════════════════════════════════════════════════════════╝"
echo '{"pass":'$PASS',"fail":'$FAIL',"total":'$TOTAL',"rate":'$(( PASS * 100 / TOTAL ))',"date":"'$(date -Iseconds)'"}' > /var/www/html/api/mega-page-test.json

View File

@@ -13,5 +13,5 @@
"Run simulation",
"CEO insights"
],
"timestamp": "2026-04-07 21:40:01"
"timestamp": "2026-04-07 21:50:01"
}

View File

@@ -1 +1 @@
{"ts": "20260407_233331", "version": "3.2", "score": 99, "pass": 152, "fail": 1, "total": 153, "elapsed": 38.7, "categories": {"S204": {"pass": 9, "fail": 0}, "S95-WV": {"pass": 12, "fail": 0}, "S95-ARS": {"pass": 17, "fail": 0}, "S95-iR": {"pass": 1, "fail": 0}, "INFRA": {"pass": 5, "fail": 0}, "API": {"pass": 27, "fail": 0}, "SEC": {"pass": 4, "fail": 0}, "S95-BK": {"pass": 6, "fail": 0}, "C2-API": {"pass": 4, "fail": 0}, "C2-SPA": {"pass": 1, "fail": 0}, "C2-WV": {"pass": 3, "fail": 0}, "SSO": {"pass": 25, "fail": 0}, "DATA": {"pass": 5, "fail": 0}, "CRONS": {"pass": 2, "fail": 0}, "BLADE": {"pass": 7, "fail": 0}, "LIFE": {"pass": 3, "fail": 0}, "FUNC": {"pass": 7, "fail": 0}, "01AVR": {"pass": 9, "fail": 1}, "STRUCT": {"pass": 5, "fail": 0}}, "failures": [{"n": "Caps10", "c": "01AVR", "s": "FAIL", "d": "9/10"}]}
{"ts": "20260407_234010", "version": "3.2", "score": 99, "pass": 152, "fail": 1, "total": 153, "elapsed": 40.1, "categories": {"S204": {"pass": 9, "fail": 0}, "S95-WV": {"pass": 12, "fail": 0}, "S95-ARS": {"pass": 17, "fail": 0}, "S95-iR": {"pass": 1, "fail": 0}, "INFRA": {"pass": 5, "fail": 0}, "API": {"pass": 27, "fail": 0}, "SEC": {"pass": 4, "fail": 0}, "S95-BK": {"pass": 6, "fail": 0}, "C2-API": {"pass": 4, "fail": 0}, "C2-SPA": {"pass": 1, "fail": 0}, "C2-WV": {"pass": 3, "fail": 0}, "SSO": {"pass": 25, "fail": 0}, "DATA": {"pass": 5, "fail": 0}, "CRONS": {"pass": 2, "fail": 0}, "BLADE": {"pass": 7, "fail": 0}, "LIFE": {"pass": 3, "fail": 0}, "FUNC": {"pass": 7, "fail": 0}, "01AVR": {"pass": 9, "fail": 1}, "STRUCT": {"pass": 5, "fail": 0}}, "failures": [{"n": "Caps10", "c": "01AVR", "s": "FAIL", "d": "9/10"}]}

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +1,5 @@
{
"timestamp": "2026-04-07T23:15:02.016997",
"timestamp": "2026-04-07T23:45:02.272202",
"agents": {
"responsive": {
"status": "AMBER",
@@ -15,7 +15,7 @@
"hamburger": true,
"menu_opens": true
},
"body": 106071
"body": 102507
},
{
"viewport": "iphone",
@@ -113,7 +113,7 @@
"content": true,
"no_overflow": true
},
"body": 106490
"body": 102924
},
{
"viewport": "ipad",
@@ -201,7 +201,7 @@
"content": true,
"no_overflow": true
},
"body": 106418
"body": 106419
},
{
"viewport": "wide",
@@ -323,6 +323,11 @@
"model_updater": {
"status": "GREEN",
"ollama": [
{
"name": "glm4:9b",
"size_gb": 5.5,
"modified": "2026-04-07"
},
{
"name": "hermes3:8b",
"size_gb": 4.7,
@@ -420,7 +425,7 @@
}
],
"updates": [],
"count": 9,
"count": 10,
"hf_dataset": "check"
}
}

View File

@@ -1,8 +1,17 @@
{
"timestamp": "2026-04-07 23:35:19",
"healthy": true,
"issues": [],
"timestamp": "2026-04-07 23:45:09",
"healthy": false,
"issues": [
"Domain monitor.weval-consulting.com: HTTP 500",
"Domain ethica.weval-consulting.com: HTTP 500",
"Domain auth.weval-consulting.com: HTTP 502",
"Domain crm.weval-consulting.com: HTTP 500",
"Domain deerflow.weval-consulting.com: HTTP 500",
"Domain mm.weval-consulting.com: HTTP 500",
"Domain n8n.weval-consulting.com: HTTP 500",
"Domain analytics.weval-consulting.com: HTTP 500"
],
"fixes": [],
"issues_count": 0,
"issues_count": 8,
"fixes_count": 0
}

View File

@@ -1,6 +1,6 @@
{
"timestamp": "2026-04-07 21:35:03",
"healthy": true,
"timestamp": "2026-04-07 21:45:05",
"healthy": false,
"checks": {
"outpost": "UP",
"flow:weval-consulting.com": "OK",
@@ -11,7 +11,7 @@
"flow:crm.weval-consulting.com": "OK",
"flow:mm.weval-consulting.com": "OK",
"flow:analytics.weval-consulting.com": "OK",
"flow:deerflow.weval-consulting.com": "OK",
"flow:deerflow.weval-consulting.com": "FAIL:500",
"callback_location": "OK",
"cookie_domain": ".weval-consulting.com",
"ssl:weval-consulting.com": "58d",
@@ -20,13 +20,19 @@
"docker:authentik-worker": "running",
"docker:authentik-db": "running",
"docker:authentik-redis": "running",
"open_ports": 53,
"open_ports": 52,
"nginx": "OK"
},
"flow_ok": 9,
"flow_fail": 0,
"alerts_count": 0,
"flow_ok": 8,
"flow_fail": 1,
"alerts_count": 1,
"fixes_count": 0,
"alerts": [],
"alerts": [
{
"level": "warning",
"msg": "Auth flow deerflow.weval-consulting.com: 500",
"ts": "2026-04-07T21:45:04+00:00"
}
],
"fixes": []
}

View File

@@ -242,6 +242,11 @@ function detectIntents($msg) {
$intents[] = ['name'=>'ssh_exec','desc'=>'L99 Exhaustive','params'=>['cmd'=>'bash /var/www/html/api/l99-exhaustive.sh']];
}
// Mega page test (210 pages + subdomains)
if (preg_match("/\\b(test.*page|page.*test|210.*page|tout.*page|all.*page|toute.*page)/i", $msg)) {
$intents[] = ['name'=>'ssh_exec','desc'=>'Mega Page Test','params'=>['cmd'=>'bash /var/www/html/api/mega-page-test.sh']];
}
// Architecture 4 serveurs
if (preg_match("/\\b(archi|architecture|4.*serv|all.*serv|blade.*status|s95|s151|sentinel)/i", $msg)) {
$intents[] = ['name'=>'ssh_exec','desc'=>'Architecture Scan','params'=>['cmd'=>'bash /var/www/html/api/arch-scan.sh']];

View File

@@ -1,5 +1,5 @@
{
"timestamp": "2026-04-07 21:35:02",
"timestamp": "2026-04-07 21:50:01",
"version": "1.0",
"disk": 83,
"ram": 28,
@@ -14,16 +14,16 @@
{
"level": "critical",
"msg": "S204:mirofish DOWN (:5001)",
"time": "21:35:02"
"time": "21:50:01"
}
],
"log": [
"21:35:02 Disk: 83%",
"21:35:02 SSL: 362d remaining",
"21:35:02 Docker: 20 containers",
"21:35:02 Ollama: 10 models, 31.3GB",
"21:35:02 RAM: 28%",
"21:35:02 Arch score: 98\/100"
"21:50:01 Disk: 83%",
"21:50:02 SSL: 362d remaining",
"21:50:02 Docker: 20 containers",
"21:50:02 Ollama: 10 models, 31.3GB",
"21:50:02 RAM: 28%",
"21:50:02 Arch score: 98\/100"
],
"s204_services": 8,
"s95_mta": 5

View File

@@ -1 +1 @@
{"ts":"23:38","status":"offline"}
{"ts":"23:50","status":"online","cpu":"100%","ram":"84%","ip":"41.248.190.86","uptime":"0d 20h","pending":24,"via":"heartbeat"}

View File

@@ -1,45 +1,41 @@
{
"date": "2026-04-07 21:30:02",
"score": "9\/13 (69.2%)",
"passed": 9,
"failed": 4,
"date": "2026-04-07 21:45:02",
"score": "12\/13 (92.3%)",
"passed": 12,
"failed": 1,
"total": 13,
"regressions": [
"eng:LLM",
"eng:Code",
"eng:Docker"
],
"regressions": [],
"auto_fixes": [],
"tests": [
{
"name": "eng:LLM",
"ok": false,
"detail": "0t 0a"
"ok": true,
"detail": "24t 3a"
},
{
"name": "eng:Code",
"ok": false,
"detail": "0t 0a"
},
{
"name": "eng:Docker",
"ok": false,
"detail": "0t 0a"
},
{
"name": "eng:SQL",
"ok": true,
"detail": "12t 1a"
},
{
"name": "eng:Docker",
"ok": true,
"detail": "17t 2a"
},
{
"name": "eng:SQL",
"ok": true,
"detail": "10t 1a"
},
{
"name": "eng:SSL",
"ok": true,
"detail": "11t 7a"
"detail": "16t 7a"
},
{
"name": "eng:Compare",
"ok": true,
"detail": "14t 3a"
"detail": "16t 3a"
},
{
"name": "api:Dream",

View File

@@ -1,2 +1,2 @@
{"ts":"23:30","disk":"83%","swap":"82%","docker_dead":"none","http":"200","ssl":"Certificate will not expire
{"ts":"23:40","disk":"83%","swap":"81%","docker_dead":"none","http":"200","ssl":"Certificate will not expire
ok","alerts":"none","crons":54}

View File

@@ -1,9 +1,9 @@
{
"timestamp": "2026-04-07 21:30:10",
"timestamp": "2026-04-07 21:40:05",
"healthy": false,
"global_pass": 427,
"global_fail": 28,
"global_rate": 93.8,
"global_pass": 442,
"global_fail": 13,
"global_rate": 97.1,
"suites": {
"l99_ux": {
"pass": 146,
@@ -18,8 +18,8 @@
"total": 34
},
"nonreg": {
"pass": 137,
"fail": 16,
"pass": 152,
"fail": 1,
"total": 153
},
"full_nonreg": {
@@ -44,14 +44,14 @@
"json": true
},
"Qdrant": {
"ok": false,
"code": 502,
"json": false
},
"SearXNG": {
"ok": true,
"code": 200,
"json": true
},
"SearXNG": {
"ok": false,
"code": 429,
"json": false
}
}
},
@@ -83,7 +83,7 @@
},
"issues": [
"L99 UX: 3 failures",
"NonReg: 16 failures ()",
"NonReg: 1 failures ()",
"Full NonReg: 7\/28 failures (75%)",
"L99 Command: 2 failures",
"Chat Monitor: 1 capabilities returning non-JSON",

View File

@@ -1,2 +1,2 @@
{"ts":"23:35","disk":"83%","ram":"28%","docker_dead":"0","ssl":"Certificate will not expire
{"ts":"23:45","disk":"83%","ram":"27%","docker_dead":"0","ssl":"Certificate will not expire
ok","models":"10","qdrant":"4","errors":"20"}

View File

@@ -90,7 +90,7 @@ fetch('/api/l99-api.php?action=failures').then(r=>r.json()).then(d=>{
const TABS={command:'Command center',functional:'Functional (42)',visual:'Visual (30)',coverage:'Test coverage',servers:'Server health',history:'Run history'};
let tab='command';
let DATA={tests:206,pass:189,fail:17,warn:0,layers:9,ss:14,vid:32};
let DATA={tests:206,pass:203,fail:3,warn:0,layers:9,ss:14,vid:32};
// Clock
setInterval(()=>{document.getElementById('clock').textContent=new Date().toLocaleTimeString('fr-FR')},1000);
@@ -124,7 +124,7 @@ async function fetchLive(){
render();
}
const LAYERS=[{n:'DOCKER',t:11,p:11,c:'cy'},{n:'CAPABILITIES',t:10,p:9,c:'cy'},{n:'CRONS',t:3,p:3,c:'cy'},{n:'SYSTEMD',t:4,p:4,c:'cy'},{n:'PORTS-S204',t:8,p:8,c:'lv'},{n:'S95-HEALTH',t:3,p:3,c:'em'},{n:'SOVEREIGN',t:10,p:10,c:'lv'},{n:'QDRANT',t:4,p:4,c:'em'},{n:'NONREG',t:153,p:137,c:'em'}];
const LAYERS=[{n:'DOCKER',t:11,p:11,c:'cy'},{n:'CAPABILITIES',t:10,p:8,c:'cy'},{n:'CRONS',t:3,p:3,c:'cy'},{n:'SYSTEMD',t:4,p:4,c:'cy'},{n:'PORTS-S204',t:8,p:8,c:'lv'},{n:'S95-HEALTH',t:3,p:3,c:'em'},{n:'SOVEREIGN',t:10,p:10,c:'lv'},{n:'QDRANT',t:4,p:4,c:'em'},{n:'NONREG',t:153,p:152,c:'em'}];
const SERVERS=[
{n:'S204',ip:'204.168.152.13',role:'Primary AI Hub',ports:48,docker:19,disk:'82%',s:'up'},

View File

@@ -1,204 +1 @@
{
"timestamp": "2026-04-07 18:00:37",
"pass": 21,
"fail": 7,
"total": 28,
"tests": [
{
"id": 1,
"name": "AUTH-01 Login valid",
"status": "pass",
"detail": "ok=true",
"category": "auth"
},
{
"id": 2,
"name": "AUTH-02 Reject bad pass",
"status": "pass",
"detail": "Rejected correctly",
"category": "auth"
},
{
"id": 3,
"name": "AUTH-03 Redirect preserved",
"status": "pass",
"detail": "/command-center.html",
"category": "auth"
},
{
"id": 4,
"name": "AUTH Public / = 200",
"status": "pass",
"detail": "25010 bytes",
"category": "auth"
},
{
"id": 5,
"name": "AUTH Public /login.html = 200",
"status": "pass",
"detail": "7540 bytes",
"category": "auth"
},
{
"id": 6,
"name": "AUTH Public /wevia = 200",
"status": "pass",
"detail": "149848 bytes",
"category": "auth"
},
{
"id": 7,
"name": "AUTH Public /wevia-widget.html = 200",
"status": "pass",
"detail": "15560 bytes",
"category": "auth"
},
{
"id": 8,
"name": "AUTH Protected /command-center.html = 302",
"status": "pass",
"detail": "HTTP 302",
"category": "auth"
},
{
"id": 9,
"name": "AUTH Protected /nonreg.html = 302",
"status": "pass",
"detail": "HTTP 302",
"category": "auth"
},
{
"id": 10,
"name": "AUTH Protected /ops-center.html = 302",
"status": "pass",
"detail": "HTTP 302",
"category": "auth"
},
{
"id": 11,
"name": "AUTH Protected /infra-command.html = 302",
"status": "pass",
"detail": "HTTP 302",
"category": "auth"
},
{
"id": 12,
"name": "AUTH Protected /apps.html = 302",
"status": "pass",
"detail": "HTTP 302",
"category": "auth"
},
{
"id": 13,
"name": "CHAT-01 Health POST",
"status": "fail",
"detail": "Not JSON",
"category": "chatbot"
},
{
"id": 14,
"name": "CHAT-02 Greeting",
"status": "fail",
"detail": "Not JSON",
"category": "chatbot"
},
{
"id": 15,
"name": "CHAT-03 No Yacine leak",
"status": "pass",
"detail": "Clean response",
"category": "chatbot"
},
{
"id": 16,
"name": "CHAT-04 No Chinese",
"status": "pass",
"detail": "OK",
"category": "chatbot"
},
{
"id": 17,
"name": "CHAT-05 No provider leak",
"status": "pass",
"detail": "No leaks",
"category": "chatbot"
},
{
"id": 18,
"name": "CAP-01 Code Python",
"status": "fail",
"detail": "Not JSON",
"category": "capability"
},
{
"id": 19,
"name": "CAP-02 Code React",
"status": "fail",
"detail": "Not JSON",
"category": "capability"
},
{
"id": 20,
"name": "CAP-03 Consulting SAP",
"status": "fail",
"detail": "Not JSON",
"category": "capability"
},
{
"id": 21,
"name": "CAP-04 SWOT analysis",
"status": "fail",
"detail": "Not JSON",
"category": "capability"
},
{
"id": 22,
"name": "CAP-05 Cybersecurity",
"status": "fail",
"detail": "Not JSON",
"category": "capability"
},
{
"id": 23,
"name": "INFRA-01 Action Engine",
"status": "pass",
"detail": "57 routes",
"category": "infra"
},
{
"id": 24,
"name": "INFRA-02 Ethica HCPs",
"status": "pass",
"detail": "50004 HCPs",
"category": "infra"
},
{
"id": 25,
"name": "INFRA-03 Quality Agent",
"status": "pass",
"detail": "95.2%",
"category": "infra"
},
{
"id": 26,
"name": "OSS-01 Ollama",
"status": "pass",
"detail": "UP",
"category": "oss"
},
{
"id": 27,
"name": "OSS-02 SearXNG",
"status": "pass",
"detail": "UP",
"category": "oss"
},
{
"id": 28,
"name": "OSS-03 Qdrant",
"status": "pass",
"detail": "UP",
"category": "oss"
}
]
}
{"timestamp":"2026-04-07T21:40:38Z","pass":22,"fail":13,"total":35,"tests":[{"id":1,"name":"AUTH-01 Login valid","status":"pass","detail":"ok=true ","category":"auth"},{"id":2,"name":"AUTH-02 Reject bad pass","status":"pass","detail":"Rejected correctly ","category":"auth"},{"id":3,"name":"AUTH-03 Redirect preserved","status":"pass","detail":"/command-center.html ","category":"auth"},{"id":4,"name":"AUTH Public / = 200","status":"pass","detail":"HTTP 200 ","category":"auth"},{"id":5,"name":"AUTH Public /login.html = 200","status":"pass","detail":"HTTP 200 ","category":"auth"},{"id":6,"name":"AUTH Public /wevia = 200","status":"pass","detail":"HTTP 200 ","category":"auth"},{"id":7,"name":"AUTH Public /wevia-widget.html = 200","status":"pass","detail":"HTTP 200 ","category":"auth"},{"id":8,"name":"AUTH Protected /command-center.html = 302","status":"pass","detail":"Redirected (302) ","category":"auth"},{"id":9,"name":"AUTH Protected /nonreg.html = 302","status":"pass","detail":"Redirected (302) ","category":"auth"},{"id":10,"name":"AUTH Protected /ops-center.html = 302","status":"pass","detail":"Redirected (302) ","category":"auth"},{"id":11,"name":"AUTH Protected /infra-command.html = 302","status":"pass","detail":"Redirected (302) ","category":"auth"},{"id":12,"name":"AUTH Protected /apps.html = 302","status":"pass","detail":"Redirected (302) ","category":"auth"},{"id":13,"name":"CHAT-01 Health GET","status":"fail","detail":"{'success':true,'action':'code','result':'Je vois que votre message est vide \u2014 peut-\u00eatre une erreur d\u2019envoi ou un test.\n\nSouhaitez-vous :\n- D\u00e9velopper une fonctionnalit\u00e9 sp","category":"chatbot"},{"id":14,"name":"CHAT-02 Greeting","status":"fail","detail":"Empty or short response ","category":"chatbot"},{"id":15,"name":"CHAT-03 No Yacine leak","status":"pass","detail":"Clean response ","category":"chatbot"},{"id":16,"name":"CHAT-04 No Chinese","status":"pass","detail":"OK: ","category":"chatbot"},{"id":17,"name":"CHAT-05 No provider leak","status":"pass","detail":"No leaks ","category":"chatbot"},{"id":18,"name":"CAP-01 Code Python","status":"fail","detail":" ","category":"capability"},{"id":19,"name":"CAP-02 Code React","status":"fail","detail":" ","category":"capability"},{"id":20,"name":"CAP-03 Consulting SAP/Oracle","status":"fail","detail":"Too short: 0 chars ","category":"capability"},{"id":21,"name":"CAP-04 Image artistic","status":"fail","detail":" ","category":"capability"},{"id":22,"name":"CAP-05 Logo SVG","status":"fail","detail":" ","category":"capability"},{"id":23,"name":"CAP-06 PDF generation","status":"fail","detail":" ","category":"capability"},{"id":24,"name":"CAP-07 Mermaid schema","status":"fail","detail":" ","category":"capability"},{"id":25,"name":"CAP-08 Skills list","status":"fail","detail":" ","category":"capability"},{"id":26,"name":"CAP-09 SWOT analysis","status":"fail","detail":" ","category":"capability"},{"id":27,"name":"MGR-01 Manager responds","status":"pass","detail":"agent=WEVIA ","category":"manager"},{"id":28,"name":"MGR-02 Sources injected","status":"fail","detail":"0 sources ","category":"manager"},{"id":29,"name":"MGR-03 Dormant modules","status":"fail","detail":"0 modules (expected >=3) ","category":"manager"},{"id":30,"name":"MGR-04 Ethica routing","status":"pass","detail":"agent=Ethica ","category":"manager"},{"id":31,"name":"OSS-01 Ollama models","status":"pass","detail":"10 models loaded ","category":"oss"},{"id":32,"name":"OSS-02 SearXNG","status":"pass","detail":"HTTP 200 ","category":"oss"},{"id":33,"name":"OSS-03 Qdrant","status":"pass","detail":"status=ok ","category":"oss"},{"id":34,"name":"OSS-04 Plausible","status":"pass","detail":"HTTP 302 ","category":"oss"},{"id":35,"name":"OSS-05 Authentik SSO","status":"pass","detail":"HTTP 302 ","category":"oss"}]}