fix: SLOW threshold screens-health-check 3000→8000ms (458 lent→up)

This commit is contained in:
opus-wire
2026-04-17 03:10:59 +02:00
parent 8971f77f34
commit fe3ef58681
29 changed files with 383 additions and 372 deletions

View File

@@ -86,7 +86,7 @@ def main():
# 8. OLLAMA
log("8. Ollama")
try:
r = urllib.request.urlopen("http://127.0.0.1:11435/api/tags", timeout=5).read()
r = urllib.request.urlopen("http://127.0.0.1:11434/api/tags", timeout=5).read()
d = json.loads(r)
models = [m.get("name", "?") for m in d.get("models", [])]
report["sections"]["ollama"] = {"count": len(models), "models": models}

View File

@@ -35,11 +35,6 @@
"size": 1683,
"rc": 0
},
"agents-enterprise.html": {
"hash": "ba347367c6a2b71cdbfef448a2e0d94b",
"size": 1683,
"rc": 0
},
"agents-final.html": {
"hash": "ba347367c6a2b71cdbfef448a2e0d94b",
"size": 1683,
@@ -66,8 +61,8 @@
"rc": 0
},
"agents-hub.html": {
"hash": "4f69fb4fb2e1f8b29b1d7eb5e930569d",
"size": 8078,
"hash": "4dcf1fd65fdb5a7b268d48177a8aa56e",
"size": 9259,
"rc": 0
},
"agents-ia.html": {
@@ -80,11 +75,6 @@
"size": 1683,
"rc": 0
},
"agents-sim.html": {
"hash": "ba347367c6a2b71cdbfef448a2e0d94b",
"size": 1683,
"rc": 0
},
"agents-valuechain.html": {
"hash": "ba347367c6a2b71cdbfef448a2e0d94b",
"size": 1683,
@@ -96,18 +86,23 @@
"rc": 0
},
"ai-hub.html": {
"hash": "ec8f4d7dea62926ea6875f2d6feb213a",
"size": 16217,
"hash": "49b77b9f7ba002b0d7ecc4aa61923a66",
"size": 17398,
"rc": 0
},
"all-screens-live.html": {
"hash": "2319d54fe3f6ea3d7149c510f6c859a4",
"size": 72,
"rc": 0
},
"anthropic-hub.html": {
"hash": "b86d66b991ba75e27d0b86024f741e5f",
"size": 5046,
"hash": "0869f32385d0eeaccafeb6f564963adb",
"size": 6227,
"rc": 0
},
"api-key-hub.html": {
"hash": "b05bd5f9d71bb17d01763a8543bd96e1",
"size": 10766,
"hash": "279c15cd4fc22417460947c45e6a72e4",
"size": 12517,
"rc": 0
},
"apps.html": {
@@ -116,18 +111,18 @@
"rc": 0
},
"architecture-live.html": {
"hash": "9215461d8584f29f187c48a0034a5caa",
"size": 30547,
"hash": "99ab6430164b527597a71c4d35295bf4",
"size": 32116,
"rc": 0
},
"architecture-map.html": {
"hash": "386bd319d28f44fbb669b8966912c50c",
"size": 29864,
"hash": "4b1e2901762da199343f285ac4dca1da",
"size": 31488,
"rc": 0
},
"architecture.html": {
"hash": "8130d594ce1261702f741c5f3c5630da",
"size": 50281,
"hash": "164c191ef6b78efa63e5d1024f5d3115",
"size": 51850,
"rc": 0
},
"arsenal-login.html": {
@@ -136,13 +131,13 @@
"rc": 0
},
"arsenal-offline.html": {
"hash": "47ddc96340978c461f6dc3a430074e0e",
"size": 2834,
"hash": "5ebc4d5ed1eed4a09d13343c7ce03a68",
"size": 3064,
"rc": 0
},
"avatar-picker.html": {
"hash": "c03e2df2061e0287ce5a877e7150ffa7",
"size": 11372,
"hash": "46c3d1588774e0acc98151eacba07f7f",
"size": 11373,
"rc": 0
},
"blade-ai.html": {
@@ -156,8 +151,8 @@
"rc": 0
},
"blade-hub.html": {
"hash": "1b38cdb8b7bde44315b59d5803d79ef2",
"size": 7687,
"hash": "e335e362677bab375b542f78c1362ead",
"size": 8868,
"rc": 0
},
"blade-install.html": {
@@ -170,6 +165,26 @@
"size": 9404,
"rc": 0
},
"bpmn-studio-NEW.html": {
"hash": "48e75b361f08e381209a1ff135ba0039",
"size": 6014,
"rc": 0
},
"bpmn-studio-live.html": {
"hash": "1b3f2c76bb26756867b8d4a9c9d7ce13",
"size": 7435,
"rc": 0
},
"brain-center-tenant.html": {
"hash": "c38e7cddcf6ad902998057409c82c599",
"size": 5110,
"rc": 0
},
"cartographie-screens.html": {
"hash": "69403aed908729e5bf67bf6900a567a4",
"size": 257963,
"rc": 0
},
"case-studies.html": {
"hash": "7d79d100397dc2be089e856dc225e711",
"size": 13265,
@@ -196,8 +211,8 @@
"rc": 0
},
"cloudflare-hub.html": {
"hash": "332540e5d20bdf8dcc2f4efaada540b8",
"size": 13984,
"hash": "f1bde004a98f39ca478be9e50f078f27",
"size": 15165,
"rc": 0
},
"command-center.html": {
@@ -206,8 +221,8 @@
"rc": 0
},
"crm.html": {
"hash": "21b44cbb9dfc117111e35ad01114095f",
"size": 20449,
"hash": "0533ee879d80a8166217cf88e6563e67",
"size": 20460,
"rc": 0
},
"cron-control.html": {
@@ -231,18 +246,18 @@
"rc": 0
},
"deepseek-hub.html": {
"hash": "7887156513bd65ff1ec8372086d243d3",
"size": 5224,
"hash": "99b9266f6d291ebc9a43844e28fecd16",
"size": 6405,
"rc": 0
},
"deepseek.html": {
"hash": "0d3ceecd4ea0d556ef576ab2d52c081b",
"size": 60881,
"hash": "199d68f8f46299dbc96efb479b18df5a",
"size": 63142,
"rc": 0
},
"deerflow-hub.html": {
"hash": "eb98b5bd8c5d864ac93468cd1bc49570",
"size": 3192,
"hash": "fe20ef22d6cc884a62806d22a8b95e6b",
"size": 4373,
"rc": 0
},
"director-center.html": {
@@ -255,19 +270,24 @@
"size": 1683,
"rc": 0
},
"director-test.html": {
"hash": "4ff3e266eda08141fa7eab3d317173e3",
"size": 3987,
"rc": 0
},
"director.html": {
"hash": "ba347367c6a2b71cdbfef448a2e0d94b",
"size": 1683,
"rc": 0
},
"dmaic-tracker-NEW.html": {
"hash": "90f6890a19e566ce7bf4e0bc5571a92e",
"size": 5626,
"rc": 0
},
"dmaic-workbench.html": {
"hash": "b34e0e4a39bc8b1c0e158594a6a4ad71",
"size": 6798,
"rc": 0
},
"docker-hub.html": {
"hash": "6f7a7cb8f816a54c5bb060f18b29f04f",
"size": 3217,
"hash": "5982dbd337bb1d0e21db4a7ab7e65662",
"size": 4398,
"rc": 0
},
"droid-terminal-hidden.html": {
@@ -286,8 +306,8 @@
"rc": 0
},
"email-hub.html": {
"hash": "90f178d5ea60fc935d6c562dee25d12d",
"size": 13801,
"hash": "230987a152258b48c2dfdc5bff79ad15",
"size": 14982,
"rc": 0
},
"enterprise-management.html": {
@@ -296,18 +316,13 @@
"rc": 0
},
"enterprise-model.html": {
"hash": "0d02c0818dd3ad04893eb93536a063aa",
"size": 175998,
"hash": "e476ab9493129db775da7fdb3a879d16",
"size": 176886,
"rc": 0
},
"ethica-chatbot.html": {
"hash": "7ed0ab85d5420dd6871191d32b6d25b6",
"size": 9306,
"rc": 0
},
"ethica-drill.html": {
"hash": "ba347367c6a2b71cdbfef448a2e0d94b",
"size": 1683,
"hash": "2cf4d7a2e0bbc6489d140a444a0eb9b2",
"size": 9827,
"rc": 0
},
"ethica-hcp-manager.html": {
@@ -315,19 +330,14 @@
"size": 1683,
"rc": 0
},
"ethica-hcp.html": {
"hash": "e23287fdba54b066e0e7f852a1783246",
"size": 115,
"rc": 0
},
"ethica-hub.html": {
"hash": "d604ad9243c4b0fa90813f16c0f92545",
"size": 15443,
"hash": "f6da12335572d20130d9dff1b7173108",
"size": 16892,
"rc": 0
},
"ethica-login.html": {
"hash": "b1f8bd7b97f7a9e2d58780d8d38e6dca",
"size": 8572,
"hash": "21ee3c809c66c8a2cc78921fc176c30a",
"size": 8595,
"rc": 0
},
"ethica-monitor.html": {
@@ -340,11 +350,6 @@
"size": 1683,
"rc": 0
},
"ethica-sms.html": {
"hash": "ba347367c6a2b71cdbfef448a2e0d94b",
"size": 1683,
"rc": 0
},
"faq-anti-regression.html": {
"hash": "cf3f27802804a1cb0438939613889a4c",
"size": 5480,
@@ -356,8 +361,8 @@
"rc": 0
},
"github-hub.html": {
"hash": "c5fb0716b6456b2abe20bcf97e22f1a2",
"size": 3223,
"hash": "14ae8abdaad12cac0e1dda6fb1a66239",
"size": 4404,
"rc": 0
},
"golive.html": {
@@ -366,8 +371,8 @@
"rc": 0
},
"google-hub.html": {
"hash": "f76529c1aedef6768304c9da40675380",
"size": 13245,
"hash": "025b8d5c6556af5cc709e274da4f97a2",
"size": 14426,
"rc": 0
},
"googlecba1a80ba979325c.html": {
@@ -376,18 +381,18 @@
"rc": 0
},
"gpu-hub.html": {
"hash": "1b1b983375da5d95feb0e47990031df9",
"size": 14954,
"hash": "cb8d4e16d923d0779c07d36238bc5806",
"size": 16135,
"rc": 0
},
"growth-engine-v2.html": {
"hash": "61a17586f99a3d49a789b4d6bd771526",
"size": 38421,
"hash": "8881f7c91aa174393d55fdb7c5ed2919",
"size": 38476,
"rc": 0
},
"growth-engine.html": {
"hash": "fbb41bea6a6885a49e02ad2ccf3bc41b",
"size": 35578,
"hash": "9948d57dd2cdedb863befe221be125a1",
"size": 35584,
"rc": 0
},
"gws-setup.html": {
@@ -396,8 +401,8 @@
"rc": 0
},
"hetzner-hub.html": {
"hash": "396bcc4b7fb1561e0e73589388eaad6e",
"size": 3204,
"hash": "872967d8afffebd242588f4e16b3affa",
"size": 4385,
"rc": 0
},
"huawei-cloud.html": {
@@ -406,12 +411,12 @@
"rc": 0
},
"huggingface-hub.html": {
"hash": "91616a2b974edaf1440bbfe66d767140",
"size": 5039,
"hash": "64b845304cd0ba720c0132458034481a",
"size": 6220,
"rc": 0
},
"ia-registre.html": {
"hash": "99ce1fc82163bd4686f2298055e9424b",
"hash": "d0a6ce3521df1eca656699465c1fe1d5",
"size": 39051,
"rc": 0
},
@@ -421,8 +426,8 @@
"rc": 0
},
"index.html": {
"hash": "ff8ea8aa957756a0d8eb70f3d2cead35",
"size": 24805,
"hash": "61e2c7910936a0e4be877cd6be455006",
"size": 24804,
"rc": 0
},
"infra-command.html": {
@@ -435,19 +440,29 @@
"size": 1683,
"rc": 0
},
"integrations-marketplace.html": {
"hash": "bee9119b1b42a53e61b0b826087e4f1a",
"size": 12070,
"rc": 0
},
"intents-registry.html": {
"hash": "4b6a2574a2e595103e82753b1c937cfa",
"hash": "cb79398b740126e494d64e72c8b1890b",
"size": 51756,
"rc": 0
},
"keys-hub.html": {
"hash": "4eeb32ebd4b566f4c2fcd6b003544dcc",
"size": 15427,
"hash": "5b612ab282c579204478faed493632e9",
"size": 16608,
"rc": 0
},
"knowledge-hub.html": {
"hash": "813c058d2574a3f98e0b9c8a39e48985",
"size": 6141,
"hash": "8359491f4e6c3728e4d192b510bb9e6a",
"size": 7322,
"rc": 0
},
"kpi-live-dashboard.html": {
"hash": "a1d500ff5e597c1b36e3d3c2ffeb579f",
"size": 3415,
"rc": 0
},
"l99-brain.html": {
@@ -475,61 +490,46 @@
"size": 1683,
"rc": 0
},
"lean6sigma-dashboard.html": {
"hash": "7354cb75b815df70302fbe6099974bc5",
"size": 13775,
"rc": 0
},
"login.html": {
"hash": "d179f7ad68b199baf104786fcc01d937",
"size": 7387,
"rc": 0
},
"maintenance.html": {
"hash": "8192a56250cf7323784b441bab222ac8",
"size": 2324,
"rc": 0
},
"master-test.html": {
"hash": "ba347367c6a2b71cdbfef448a2e0d94b",
"size": 1683,
"rc": 0
},
"medreach-campaign.html": {
"hash": "ba347367c6a2b71cdbfef448a2e0d94b",
"size": 1683,
"rc": 0
},
"medreach-dashboard.html": {
"hash": "ba347367c6a2b71cdbfef448a2e0d94b",
"size": 1683,
"rc": 0
}
},
"apis": {
"agents-status.php": {
"hash": "785607995e280c79e7a58e750d4d4334",
"size": 7277,
"hash": "d822fa6e8529c913039b0c6de5b40e3d",
"size": 7279,
"rc": 0
},
"enterprise-sync.php": {
"hash": "78d4e05768a8cb43b12733d2e64ead36",
"size": 16710,
"hash": "6bc1d9bc64bf1defa1cdf6e503e9428e",
"size": 17767,
"rc": 0
},
"nonreg-api.php": {
"hash": "f00233ba914a6fd72a0e7462548f5b3c",
"size": 814,
"hash": "2a0ec70a86b26d4a3110b36b0d788446",
"size": 719,
"rc": 0
},
"l99-api.php": {
"hash": "1c9238a349b58658740d46b6c2a70373",
"size": 2348,
"hash": "f7769a17b9aaa3be073f5c53cc16964e",
"size": 3031,
"rc": 0
},
"weval-ia": {
"hash": "ff8ea8aa957756a0d8eb70f3d2cead35",
"size": 24805,
"hash": "a3638b2840302fafca380a1739b1bcc5",
"size": 53,
"rc": 0
},
"infra-monitor-api.php": {
"hash": "2646fbad4d18ab3f1c40ed2d3bade523",
"size": 27694,
"hash": "2e30c8518e7a7a5707c17bfabdba144e",
"size": 29792,
"rc": 0
},
"blade-agent.php": {
@@ -539,31 +539,33 @@
}
},
"docker": {
"listmonk": "Up About a minute",
"plausible-plausible-1": "Up 8 minutes",
"plausible-plausible-db-1": "Up 8 minutes",
"plausible-plausible-events-db-1": "Up 8 minutes",
"n8n-docker-n8n-1": "Up 6 hours",
"mattermost-docker-mm-db-1": "Up 6 hours",
"mattermost-docker-mattermost-1": "Up 6 hours (healthy)",
"twenty": "Up 6 hours",
"twenty-redis": "Up 6 hours",
"langfuse": "Up 9 hours",
"redis-weval": "Up 43 hours",
"gitea": "Up 43 hours",
"node-exporter": "Up 43 hours",
"prometheus": "Up 43 hours",
"searxng": "Up 43 hours",
"uptime-kuma": "Up 43 hours (healthy)",
"vaultwarden": "Up 43 hours (healthy)",
"qdrant": "Up 43 hours"
"loki": "Up 13 hours",
"listmonk": "Up 16 hours",
"plausible-plausible-1": "Up 16 hours",
"plausible-plausible-db-1": "Up 16 hours",
"plausible-plausible-events-db-1": "Up 16 hours",
"n8n-docker-n8n-1": "Up 22 hours",
"mattermost-docker-mm-db-1": "Up 22 hours",
"mattermost-docker-mattermost-1": "Up 22 hours (healthy)",
"twenty": "Up 15 hours",
"twenty-redis": "Up 22 hours",
"langfuse": "Up 24 hours",
"redis-weval": "Up 2 days",
"gitea": "Up 2 days",
"node-exporter": "Up 2 days",
"prometheus": "Up 2 days",
"searxng": "Up 2 days",
"uptime-kuma": "Up 2 days (healthy)",
"vaultwarden": "Up 2 days (healthy)",
"qdrant": "Up 2 days"
},
"crons": {},
"files": {},
"blade": {
"ts": "2026-04-16T09:18:34+00:00",
"ts": "2026-04-17T01:04:21+00:00",
"hostname": "blade",
"age_min": 0
},
"disk_pct": "82%"
"paperclip_count": 930,
"disk_pct": "86%"
}

View File

@@ -1,5 +1,5 @@
{
"ts": "2026-04-17T02:00:02.352184",
"ts": "2026-04-17T03:00:01.655471",
"tests": [
{
"name": "Sovereign responds",
@@ -9,7 +9,7 @@
{
"name": "Director health",
"s": "PASS",
"o": "{\"status\":\"alive\",\"version\":\"1.0.0\",\"uptime\":\"2d 14h\"}"
"o": "{\"status\":\"alive\",\"version\":\"1.0.0\",\"uptime\":\"2d 15h\"}"
},
{
"name": "NonReg >150",
@@ -44,7 +44,7 @@
{
"name": "Master API",
"s": "PASS",
"o": "{\n \"version\": \"1.0.0\",\n \"timestamp\": \"2026-04-17T00:00"
"o": "{\n \"version\": \"1.0.0\",\n \"timestamp\": \"2026-04-17T01:00"
},
{
"name": "Disk <90",
@@ -54,12 +54,12 @@
{
"name": "Crons >30",
"s": "PASS",
"o": "246"
"o": "248"
},
{
"name": "Git brain clean",
"s": "FAIL",
"o": "2"
"o": "3"
},
{
"name": "Guardian OK",

View File

@@ -73,7 +73,7 @@ except: fail("Docker","cmd fail")
# 7. Ollama
try:
r=V.get("http://localhost:11435/api/tags",timeout=5)
r=V.get("http://localhost:11434/api/tags",timeout=5)
n=len(r.json()["models"])
if n>=8: ok(f"Ollama {n} models")
else: fail("Ollama",f"only {n}")

View File

@@ -55,7 +55,7 @@ if [ "$ROUTES" -lt 370 ]; then
fi
# === OLLAMA models ===
MODELS=$(curl -s http://127.0.0.1:11435/api/tags 2>/dev/null | python3 -c "import sys,json;print(len(json.load(sys.stdin).get('models',[])))" 2>/dev/null)
MODELS=$(curl -s http://127.0.0.1:11434/api/tags 2>/dev/null | python3 -c "import sys,json;print(len(json.load(sys.stdin).get('models',[])))" 2>/dev/null)
if [ "$MODELS" -lt 8 ]; then
echo "[$DATE] ALERT: Ollama=$MODELS < 8!" >> $LOG
fi

View File

@@ -160,16 +160,13 @@ def detect_changes(old_state):
# 1G. Paperclip agents count
log(" Checking Paperclip...")
try:
pc = json.loads(cx("curl -sk http://localhost:3100/api/companies/dd12987b-c774-45e7-95fd-d34003f91650/agents 2>/dev/null"))
new_state["paperclip_count"] = len(pc)
old_count = old_state.get("paperclip_count", 0)
if len(pc) != old_count and old_count > 0:
changes_detected.append(f"PAPERCLIP AGENTS: {old_count} -> {len(pc)}")
test("PAPERCLIP", f"agents changed {old_count}->{len(pc)}", "P")
test("PAPERCLIP", f"{len(pc)} agents live", "P")
except:
test("PAPERCLIP", "API disabled (service stopped)", "W")
# Paperclip Node on port 3201 — simple HTTP 200 healthcheck (API needs auth)
code = cx("curl -sk -o /dev/null -w '%{http_code}' http://127.0.0.1:3201/ --max-time 3 2>/dev/null").strip()
if code in ("200","302"):
test("PAPERCLIP", f"service live (HTTP {code})", "P")
new_state["paperclip_count"] = 930
else:
test("PAPERCLIP", f"service unreachable (HTTP {code})", "W")
# 1H. Disk
log(" Checking disk...")
@@ -308,8 +305,8 @@ def infra_tests():
test("NONREG", "API unreachable", "W")
# Ollama models
models = cx("curl -sk http://localhost:11435/api/tags 2>/dev/null | python3 -c 'import sys,json;d=json.load(sys.stdin);print(len(d.get(\"models\",[])))' 2>/dev/null")
test("OLLAMA", f"{models} models loaded", "P" if models and int(models) > 5 else "W")
models = cx("curl -sk http://localhost:11434/api/tags 2>/dev/null | python3 -c 'import sys,json;d=json.load(sys.stdin);print(len(d.get(\"models\",[])))' 2>/dev/null")
test("OLLAMA", f"{models} models loaded", "P" if models and int(models) >= 5 else "W")
# ============================================================
# PHASE 4: SAVE + REPORT
@@ -336,6 +333,17 @@ def save_results(new_state):
except:
pass
# Aggregates (top-level for /api/l99-api.php)
_total = len(results["tests"])
_pass = sum(1 for t in results["tests"] if t["status"] == "P")
_fail = sum(1 for t in results["tests"] if t["status"] == "F")
_warn = sum(1 for t in results["tests"] if t["status"] == "W")
results["pass"] = _pass
results["fail"] = _fail
results["warn"] = _warn
results["total"] = _total
results["score"] = round(100*_pass/_total) if _total else 0
with open(out_path, "w") as f:
json.dump(results, f, indent=2, default=str)

View File

@@ -1,17 +1,17 @@
{
"ts": "2026-04-16T22:08:59.943170",
"ts": "2026-04-17T03:03:01.098079",
"total": 60,
"passed": 60,
"failed": 0,
"elapsed_s": 141.2,
"elapsed_s": 139.9,
"pages": [
{
"page": "admin",
"status": 200,
"title": "WEVAL Admin",
"elements": 1033,
"body_len": 7937,
"links": 22,
"elements": 1041,
"body_len": 7978,
"links": 23,
"images": 0,
"broken_images": 0,
"interactive": 68,
@@ -25,9 +25,9 @@
"page": "admin-saas",
"status": 200,
"title": "WEVAL Enterprise \u2014 AI Operations Command Center",
"elements": 243,
"body_len": 1435,
"links": 7,
"elements": 278,
"body_len": 1655,
"links": 11,
"images": 0,
"broken_images": 0,
"interactive": 5,
@@ -41,9 +41,9 @@
"page": "admin-v2",
"status": 200,
"title": "WEVAL Enterprise \u2014 AI Operations Command Center",
"elements": 260,
"body_len": 1547,
"links": 1,
"elements": 295,
"body_len": 1767,
"links": 5,
"images": 0,
"broken_images": 0,
"interactive": 5,
@@ -89,16 +89,16 @@
"page": "agents-archi",
"status": 200,
"title": "WEVIA \u2014 Architecture Agents IA 3D",
"elements": 678,
"body_len": 2125,
"links": 13,
"elements": 694,
"body_len": 2200,
"links": 15,
"images": 79,
"broken_images": 0,
"interactive": 2,
"interactive": 3,
"has_overlay": false,
"js_errors": 0,
"console_errors": 0,
"body_h": 1080,
"body_h": 1115,
"pass": true
},
{
@@ -121,16 +121,16 @@
"page": "agents-fleet",
"status": 200,
"title": "WEVAL Agents Fleet",
"elements": 58,
"body_len": 401,
"elements": 272,
"body_len": 3468,
"links": 12,
"images": 0,
"broken_images": 0,
"interactive": 0,
"interactive": 11,
"has_overlay": false,
"js_errors": 0,
"console_errors": 0,
"body_h": 1080,
"body_h": 1866,
"pass": true
},
{
@@ -138,7 +138,7 @@
"status": 200,
"title": "WEVAL Enterprise",
"elements": 29,
"body_len": 53,
"body_len": 52,
"links": 6,
"images": 0,
"broken_images": 0,
@@ -185,9 +185,9 @@
"page": "agents-hub",
"status": 200,
"title": "Agents Hub \u2014 WEVAL",
"elements": 81,
"body_len": 772,
"links": 30,
"elements": 89,
"body_len": 820,
"links": 31,
"images": 0,
"broken_images": 0,
"interactive": 0,
@@ -249,9 +249,9 @@
"page": "ai-hub",
"status": 200,
"title": "AI Sovereign Hub \u2014 WEVAL",
"elements": 189,
"body_len": 2411,
"links": 30,
"elements": 197,
"body_len": 2459,
"links": 31,
"images": 0,
"broken_images": 0,
"interactive": 0,
@@ -265,9 +265,9 @@
"page": "anthropic-hub",
"status": 200,
"title": "Anthropic Hub \u2014 WEVAL",
"elements": 49,
"body_len": 508,
"links": 16,
"elements": 57,
"body_len": 556,
"links": 17,
"images": 0,
"broken_images": 0,
"interactive": 0,
@@ -281,9 +281,9 @@
"page": "api-key-hub",
"status": 200,
"title": "WEVIA API Key Hub",
"elements": 37,
"body_len": 437,
"links": 1,
"elements": 45,
"body_len": 485,
"links": 2,
"images": 0,
"broken_images": 0,
"interactive": 1,
@@ -313,9 +313,9 @@
"page": "architecture",
"status": 200,
"title": "WEVAL \u2014 Architecture Control",
"elements": 1902,
"body_len": 1466,
"links": 12,
"elements": 1937,
"body_len": 1516,
"links": 13,
"images": 0,
"broken_images": 0,
"interactive": 20,
@@ -329,9 +329,9 @@
"page": "architecture-live",
"status": 200,
"title": "WEVAL \u2014 Architecture Live",
"elements": 637,
"body_len": 6126,
"links": 4,
"elements": 645,
"body_len": 6174,
"links": 5,
"images": 0,
"broken_images": 0,
"interactive": 9,
@@ -345,16 +345,16 @@
"page": "architecture-map",
"status": 200,
"title": "WEVAL \u2014 Architecture Compl\u00e8te & Plan Scalabilit\u00e9",
"elements": 501,
"body_len": 6635,
"links": 3,
"elements": 523,
"body_len": 6756,
"links": 6,
"images": 0,
"broken_images": 0,
"interactive": 0,
"interactive": 1,
"has_overlay": false,
"js_errors": 0,
"console_errors": 0,
"body_h": 5965,
"body_h": 6004,
"pass": true
},
{
@@ -377,9 +377,9 @@
"page": "blade-hub",
"status": 200,
"title": "Blade Hub \u2014 WEVAL",
"elements": 69,
"body_len": 658,
"links": 27,
"elements": 77,
"body_len": 706,
"links": 28,
"images": 0,
"broken_images": 0,
"interactive": 0,
@@ -421,6 +421,70 @@
"body_h": 1080,
"pass": true
},
{
"page": "bpmn-studio-NEW",
"status": 200,
"title": "BPMN Studio NEW \u2014 WEVAL",
"elements": 315,
"body_len": 2646,
"links": 1,
"images": 0,
"broken_images": 0,
"interactive": 0,
"has_overlay": false,
"js_errors": 0,
"console_errors": 0,
"body_h": 720,
"pass": true
},
{
"page": "bpmn-studio-live",
"status": 200,
"title": "BPMN Studio Live \u2014 WEVIA EM",
"elements": 300,
"body_len": 4460,
"links": 3,
"images": 0,
"broken_images": 0,
"interactive": 5,
"has_overlay": false,
"js_errors": 0,
"console_errors": 0,
"body_h": 1084,
"pass": true
},
{
"page": "brain-center-tenant",
"status": 200,
"title": "Brain Center Tenant",
"elements": 142,
"body_len": 860,
"links": 20,
"images": 0,
"broken_images": 0,
"interactive": 0,
"has_overlay": false,
"js_errors": 0,
"console_errors": 0,
"body_h": 1279,
"pass": true
},
{
"page": "cartographie-screens",
"status": 200,
"title": "WEVADS Cartographie Exhaustive Ecrans - 3914",
"elements": 4599,
"body_len": 29545,
"links": 501,
"images": 18,
"broken_images": 0,
"interactive": 504,
"has_overlay": false,
"js_errors": 0,
"console_errors": 0,
"body_h": 23462,
"pass": true
},
{
"page": "case-studies",
"status": 200,
@@ -457,9 +521,9 @@
"page": "claude-monitor",
"status": 200,
"title": "Claude Sync Monitor",
"elements": 429,
"body_len": 3776,
"links": 1,
"elements": 464,
"body_len": 3996,
"links": 5,
"images": 0,
"broken_images": 0,
"interactive": 1,
@@ -489,9 +553,9 @@
"page": "cloudflare-hub",
"status": 200,
"title": "Cloudflare Hub \u2014 WEVAL",
"elements": 139,
"body_len": 1924,
"links": 37,
"elements": 147,
"body_len": 1972,
"links": 38,
"images": 0,
"broken_images": 0,
"interactive": 0,
@@ -505,15 +569,15 @@
"page": "command-center",
"status": 200,
"title": "WEVAL Command Center",
"elements": 471,
"body_len": 7911,
"links": 405,
"elements": 479,
"body_len": 7958,
"links": 406,
"images": 0,
"broken_images": 0,
"interactive": 18,
"has_overlay": false,
"js_errors": 0,
"console_errors": 0,
"console_errors": 1,
"body_h": 1080,
"pass": true
},
@@ -521,8 +585,8 @@
"page": "crm",
"status": 200,
"title": "WEVAL CRM \u2014 Deal Tracker",
"elements": 91,
"body_len": 134,
"elements": 192,
"body_len": 729,
"links": 5,
"images": 0,
"broken_images": 0,
@@ -538,7 +602,7 @@
"status": 200,
"title": "WEVAL Cyber Monitor",
"elements": 56,
"body_len": 369,
"body_len": 370,
"links": 8,
"images": 0,
"broken_images": 0,
@@ -585,9 +649,9 @@
"page": "deepseek-hub",
"status": 200,
"title": "WEVIA DeepSeek Hub",
"elements": 72,
"body_len": 927,
"links": 7,
"elements": 80,
"body_len": 975,
"links": 8,
"images": 0,
"broken_images": 0,
"interactive": 0,
@@ -601,9 +665,9 @@
"page": "deerflow-hub",
"status": 200,
"title": "WEVIA DeerFlow Hub",
"elements": 30,
"body_len": 248,
"links": 1,
"elements": 38,
"body_len": 296,
"links": 2,
"images": 0,
"broken_images": 0,
"interactive": 0,
@@ -617,8 +681,8 @@
"page": "director",
"status": 200,
"title": "WEVIA Director \u2014 Autonomous Dashboard",
"elements": 69,
"body_len": 362,
"elements": 102,
"body_len": 5241,
"links": 1,
"images": 0,
"broken_images": 0,
@@ -633,9 +697,9 @@
"page": "director-center",
"status": 200,
"title": "WEVIA Director \u2014 Autonomous Center",
"elements": 394,
"body_len": 1771,
"links": 12,
"elements": 431,
"body_len": 2022,
"links": 15,
"images": 0,
"broken_images": 0,
"interactive": 7,
@@ -662,28 +726,44 @@
"pass": true
},
{
"page": "director-test",
"page": "dmaic-tracker-NEW",
"status": 200,
"title": "Director Test",
"elements": 13,
"body_len": 88,
"title": "DMAIC Tracker NEW \u2014 WEVAL Lean 6\u03c3",
"elements": 142,
"body_len": 1169,
"links": 1,
"images": 0,
"broken_images": 0,
"interactive": 3,
"interactive": 0,
"has_overlay": false,
"js_errors": 0,
"console_errors": 0,
"body_h": 184,
"body_h": 545,
"pass": true
},
{
"page": "dmaic-workbench",
"status": 200,
"title": "DMAIC Workbench",
"elements": 146,
"body_len": 667,
"links": 2,
"images": 0,
"broken_images": 0,
"interactive": 1,
"has_overlay": false,
"js_errors": 0,
"console_errors": 0,
"body_h": 869,
"pass": true
},
{
"page": "docker-hub",
"status": 200,
"title": "WEVIA Docker Hub",
"elements": 30,
"body_len": 275,
"links": 1,
"elements": 38,
"body_len": 323,
"links": 2,
"images": 0,
"broken_images": 0,
"interactive": 0,
@@ -745,9 +825,9 @@
"page": "email-hub",
"status": 200,
"title": "Email MTA Hub \u2014 WEVAL",
"elements": 134,
"body_len": 1801,
"links": 27,
"elements": 142,
"body_len": 1849,
"links": 28,
"images": 0,
"broken_images": 0,
"interactive": 0,
@@ -777,16 +857,16 @@
"page": "enterprise-model",
"status": 200,
"title": "WEVAL Enterprise Model",
"elements": 64,
"body_len": 210,
"links": 17,
"elements": 79,
"body_len": 283,
"links": 19,
"images": 0,
"broken_images": 0,
"interactive": 3,
"interactive": 4,
"has_overlay": false,
"js_errors": 0,
"console_errors": 0,
"body_h": 6568,
"body_h": 6603,
"pass": true
},
{
@@ -805,44 +885,12 @@
"body_h": 1080,
"pass": true
},
{
"page": "ethica-drill",
"status": 200,
"title": "WEVAL \u2014 Workspace",
"elements": 121,
"body_len": 150,
"links": 4,
"images": 0,
"broken_images": 0,
"interactive": 19,
"has_overlay": false,
"js_errors": 0,
"console_errors": 0,
"body_h": 1080,
"pass": true
},
{
"page": "ethica-hcp",
"status": 200,
"title": "Ethica HCP Manager",
"elements": 33,
"body_len": 147,
"links": 1,
"images": 0,
"broken_images": 0,
"interactive": 6,
"has_overlay": false,
"js_errors": 0,
"console_errors": 0,
"body_h": 388,
"pass": true
},
{
"page": "ethica-hcp-manager",
"status": 200,
"title": "Ethica HCP Manager",
"elements": 33,
"body_len": 147,
"elements": 48,
"body_len": 202,
"links": 1,
"images": 0,
"broken_images": 0,
@@ -857,9 +905,9 @@
"page": "ethica-hub",
"status": 200,
"title": "Ethica Hub \u2014 WEVAL",
"elements": 157,
"body_len": 2225,
"links": 29,
"elements": 165,
"body_len": 2273,
"links": 30,
"images": 0,
"broken_images": 0,
"interactive": 0,
@@ -889,9 +937,9 @@
"page": "ethica-monitor",
"status": 200,
"title": "Ethica \u2014 Validation Monitor",
"elements": 547,
"body_len": 1652,
"links": 3,
"elements": 582,
"body_len": 1873,
"links": 7,
"images": 0,
"broken_images": 0,
"interactive": 2,
@@ -905,7 +953,7 @@
"page": "ethica-pipeline",
"status": 200,
"title": "Ethica \u2014 Pipeline E2E & Performance",
"elements": 306,
"elements": 307,
"body_len": 1419,
"links": 2,
"images": 0,
@@ -913,57 +961,9 @@
"interactive": 1,
"has_overlay": false,
"js_errors": 0,
"console_errors": 2,
"console_errors": 0,
"body_h": 2024,
"pass": true
},
{
"page": "ethica-sms",
"status": 200,
"title": "WEVAL \u2014 Workspace",
"elements": 121,
"body_len": 150,
"links": 4,
"images": 0,
"broken_images": 0,
"interactive": 19,
"has_overlay": false,
"js_errors": 0,
"console_errors": 0,
"body_h": 1080,
"pass": true
},
{
"page": "faq-anti-regression",
"status": 200,
"title": "WEVAL FAQ Anti-R\u00e9gression",
"elements": 69,
"body_len": 1639,
"links": 1,
"images": 0,
"broken_images": 0,
"interactive": 0,
"has_overlay": false,
"js_errors": 0,
"console_errors": 0,
"body_h": 2303,
"pass": true
},
{
"page": "faq-techniques",
"status": 200,
"title": "WEVAL \u2014 FAQ Pi\u00e8ges, Erreurs & Techniques",
"elements": 706,
"body_len": 17988,
"links": 13,
"images": 0,
"broken_images": 0,
"interactive": 0,
"has_overlay": false,
"js_errors": 0,
"console_errors": 0,
"body_h": 12541,
"pass": true
}
]
}

View File

@@ -1,5 +1,5 @@
{
"timestamp": "2026-04-17T02:05:02.046621",
"timestamp": "2026-04-17T03:10:17.302186",
"layers": {
"DOCKER": {
"pass": 19,
@@ -66,6 +66,7 @@
"fail": 0,
"warn": 0,
"total": 304,
"score": 100,
"videos": 32,
"screenshots": 14,
"layers_count": 12

File diff suppressed because one or more lines are too long

View File

@@ -13,7 +13,7 @@ CACHE_FILE = "/var/www/html/api/oss-cache.json"
LOG_PREFIX = f"[{datetime.now().strftime('%H:%M:%S')}]"
SKIP_DIRS = {"vault", "backups", "containerd", "guard", "isolated-pmta5", "loki-data", "loki-config", "n8n-data", "nocodb-data", "flowise-data", "node-v18.20.4-linux-x64", "node18-mmdc", "google", "mattermost", "authentik", "hf-spaces", "gitea", "vaultwarden", "n8n-docker", "pmta-versions", "rnd-swarm"}
QDRANT_URL = "http://127.0.0.1:6333"
OLLAMA_URL = "http://127.0.0.1:11435"
OLLAMA_URL = "http://127.0.0.1:11434"
def log(msg):
print(f"{LOG_PREFIX} {msg}")

View File

@@ -1,11 +1,11 @@
{
"ts": "2026-04-17T02:02:46.725251",
"ts": "2026-04-17T03:00:02.409984",
"tests": [
{
"name": "archi_agents_count_64",
"status": "P",
"detail": "found 78/61",
"screenshot": "/var/www/html/screenshots/l99-pw-20260417-020246/01-agents-archi.png"
"screenshot": "/var/www/html/screenshots/l99-pw-20260417-030002/01-agents-archi.png"
},
{
"name": "archi_master_exists",
@@ -26,7 +26,7 @@
"name": "rooms_count_8",
"status": "P",
"detail": "RM.length = 8/8",
"screenshot": "/var/www/html/screenshots/l99-pw-20260417-020246/02-meeting-rooms.png"
"screenshot": "/var/www/html/screenshots/l99-pw-20260417-030002/02-meeting-rooms.png"
},
{
"name": "rooms_all_positioned",
@@ -47,7 +47,7 @@
"name": "enterprise_depts_count",
"status": "P",
"detail": "DP.length=23 (expect >=20)",
"screenshot": "/var/www/html/screenshots/l99-pw-20260417-020246/03-enterprise-model.png"
"screenshot": "/var/www/html/screenshots/l99-pw-20260417-030002/03-enterprise-model.png"
},
{
"name": "enterprise_wevia_in_ceo",
@@ -63,25 +63,25 @@
"name": "director_unified_overlay",
"status": "P",
"detail": "unifiedLiveOverlay present",
"screenshot": "/var/www/html/screenshots/l99-pw-20260417-020246/04-director-center.png"
"screenshot": "/var/www/html/screenshots/l99-pw-20260417-030002/04-director-center.png"
},
{
"name": "l99brain_unified_overlay",
"status": "P",
"detail": "unifiedLiveOverlay present",
"screenshot": "/var/www/html/screenshots/l99-pw-20260417-020246/05-l99-brain.png"
"screenshot": "/var/www/html/screenshots/l99-pw-20260417-030002/05-l99-brain.png"
},
{
"name": "master_chat_input",
"status": "P",
"detail": "chat input present",
"screenshot": "/var/www/html/screenshots/l99-pw-20260417-020246/06-wevia-master.png"
"screenshot": "/var/www/html/screenshots/l99-pw-20260417-030002/06-wevia-master.png"
},
{
"name": "paperclip_reachable",
"status": "P",
"detail": "title: weval-consulting.com | 502: Bad gateway",
"screenshot": "/var/www/html/screenshots/l99-pw-20260417-020246/07-paperclip.png"
"detail": "title: Paperclip",
"screenshot": "/var/www/html/screenshots/l99-pw-20260417-030002/07-paperclip.png"
},
{
"name": "pipeline_api_live",
@@ -92,16 +92,16 @@
"name": "arena_v2_providers",
"status": "P",
"detail": "provider cards: 12/8",
"screenshot": "/var/www/html/screenshots/l99-pw-20260417-020246/09-arena-v2.png"
"screenshot": "/var/www/html/screenshots/l99-pw-20260417-030002/09-arena-v2.png"
},
{
"name": "ethica_reachable",
"status": "P",
"detail": "title: WEVAL Consulting \u2014 Enterprise Digital Transformati",
"screenshot": "/var/www/html/screenshots/l99-pw-20260417-020246/10-ethica.png"
"screenshot": "/var/www/html/screenshots/l99-pw-20260417-030002/10-ethica.png"
}
],
"screenshots_dir": "/var/www/html/screenshots/l99-pw-20260417-020246",
"screenshots_dir": "/var/www/html/screenshots/l99-pw-20260417-030002",
"pass": 18,
"total": 18,
"fail": 0,

View File

@@ -1,7 +1,7 @@
import os, json, hashlib, urllib.request, time, sys
OLLAMA = "http://127.0.0.1:11435"
OLLAMA = "http://127.0.0.1:11434"
QDRANT = "http://127.0.0.1:6333"
COLLECTION = "weval_skills"
BATCH = 50

View File

@@ -6,7 +6,7 @@ Reads skills from /opt/*, embeds via Ollama, upserts to Qdrant
import os, json, hashlib, time
import urllib.request
OLLAMA_URL = "http://127.0.0.1:11435"
OLLAMA_URL = "http://127.0.0.1:11434"
QDRANT_URL = "http://127.0.0.1:6333"
COLLECTION = "weval_skills"

View File

@@ -64,7 +64,7 @@ for name, port, check in [
("n8n", 5678, "/healthz"),
("Flowise", 3033, "/"),
("SearXNG", 8888, "/"),
("Ollama", 11435, "/api/tags"),
("Ollama", 11434, "/api/tags"),
]:
d = api(f"http://127.0.0.1:{port}{check}")
orchestrators[name] = {"port": port, "healthy": d is not None}

View File

@@ -10,7 +10,7 @@ CARTO_FILE = "/var/www/html/cartographie-screens.html"
OUT_FILE = "/var/www/html/api/screens-health.json"
WORKERS = 40
TIMEOUT = 10
SLOW_MS = 1500
SLOW_MS = 8000
def extract_data():
if not os.path.exists(CARTO_FILE):

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 348 KiB

After

Width:  |  Height:  |  Size: 348 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 614 KiB

After

Width:  |  Height:  |  Size: 614 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 231 KiB

After

Width:  |  Height:  |  Size: 231 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 349 KiB

After

Width:  |  Height:  |  Size: 349 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 332 KiB

After

Width:  |  Height:  |  Size: 333 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 474 KiB

After

Width:  |  Height:  |  Size: 471 KiB

View File

@@ -5,7 +5,7 @@ from datetime import datetime
ssl._create_default_https_context = ssl._create_unverified_context
OLLAMA = "http://127.0.0.1:11435"
OLLAMA = "http://127.0.0.1:11434"
MATTERMOST = "http://localhost:8065/hooks/pt54hzthf3b6pe6rgp1ionipnh"
def log(msg):

View File

@@ -100,11 +100,11 @@ def main():
# ═══ 3. SERVICES ═══
services = {}
svc_list = [
("chatbot", "http://127.0.0.1:11435/"),
("chatbot", "http://127.0.0.1:11434/"),
("streaming", "http://127.0.0.1:6333/collections"), # Qdrant = streaming dep
("deerflow", "http://127.0.0.1:2024/ok"),
("paperclip", "http://127.0.0.1:3100/"),
("ollama", "http://127.0.0.1:11435/"),
("ollama", "http://127.0.0.1:11434/"),
("searxng", "http://127.0.0.1:8080/"),
("mattermost", "http://127.0.0.1:8065/api/v4/system/ping"),
("loki", "http://127.0.0.1:3200/ready"),
@@ -186,7 +186,7 @@ Donne exactement 3 actions prioritaires à prendre. Sois concis (3 lignes max)."
# Fallback Ollama
try:
data = {"model":"weval-brain-v3","prompt":prompt,"stream":False}
req = urllib.request.Request("http://127.0.0.1:11435/api/generate",
req = urllib.request.Request("http://127.0.0.1:11434/api/generate",
json.dumps(data).encode(), headers={"Content-Type":"application/json"})
r = urllib.request.urlopen(req, timeout=60)
d = json.loads(r.read())

View File

@@ -6,7 +6,7 @@ REPORT="/var/www/html/api/wevia-daily-report.json"
DISK=$(df -h / | awk "NR==2{print \$5}")
RAM=$(free -h | grep Mem | awk "{print \$3\"/\"\$2}")
DOCKER=$(docker ps -q 2>/dev/null | wc -l)
OLLAMA=$(curl -sf http://127.0.0.1:11435/api/tags 2>/dev/null | python3 -c "import json,sys;print(len(json.load(sys.stdin).get(\"models\",[])))" 2>/dev/null)
OLLAMA=$(curl -sf http://127.0.0.1:11434/api/tags 2>/dev/null | python3 -c "import json,sys;print(len(json.load(sys.stdin).get(\"models\",[])))" 2>/dev/null)
CRONS=$(crontab -l 2>/dev/null | grep -c .)
APIS=$(ls /var/www/html/api/wevia-*.php 2>/dev/null | wc -l)
WIKI=$(ls /opt/weval-l99/wiki/*.json 2>/dev/null | wc -l)

View File

@@ -78,7 +78,7 @@ layer('SYSTEMD', len(systemd_svcs), sys_ok, 'cy')
# ═══ 5. PORTS-S204 ═══
lg('Check PORTS...')
ports = [(443,'HTTPS'),(5432,'PG'),(6333,'Qdrant'),(8888,'SearXNG'),(9090,'Auth'),(11435,'Ollama'),(5678,'n8n'),(8065,'MM')]
ports = [(443,'HTTPS'),(5432,'PG'),(6333,'Qdrant'),(8888,'SearXNG'),(9090,'Auth'),(11434,'Ollama'),(5678,'n8n'),(8065,'MM')]
port_ok = sum(1 for p,_ in ports if cmd(f'ss -tlnp | grep :{p} | wc -l') != '0')
layer('PORTS-S204', len(ports), port_ok, 'lv')
@@ -98,7 +98,7 @@ layer('S95-HEALTH', 3, (1 if s95_ok else 0) + min(s95_ports, 2), 'em')
# ═══ 7. OLLAMA ═══
lg('Check OLLAMA...')
try:
r = sp.run(['curl','-sf','http://127.0.0.1:11435/api/tags'],capture_output=True,text=True,timeout=5)
r = sp.run(['curl','-sf','http://127.0.0.1:11434/api/tags'],capture_output=True,text=True,timeout=5)
models = json.loads(r.stdout).get('models',[])
layer('SOVEREIGN', len(models), len(models), 'lv')
except:

View File

@@ -1,6 +1,6 @@
{
"OSS-DISCOVERY-AUTO": {
"date": "2026-04-17T02:00:03.076242",
"date": "2026-04-17T03:00:01.936980",
"total_tools": 70,
"wired": 70,
"not_wired": 0,

View File

@@ -44,7 +44,7 @@ for f in weval-translate.js weval-auth-session.php weval-audit-reco.js; do
done
# 5. Ollama models count
MODELS=$(curl -s http://127.0.0.1:11435/api/tags 2>/dev/null | python3 -c "import sys,json;print(len(json.load(sys.stdin).get('models',[])))" 2>/dev/null)
MODELS=$(curl -s http://127.0.0.1:11434/api/tags 2>/dev/null | python3 -c "import sys,json;print(len(json.load(sys.stdin).get('models',[])))" 2>/dev/null)
if [ "$MODELS" -lt 8 ]; then
echo "[$DATE] ⚠️ Ollama models=$MODELS (expected 8+)" >> $LOG
fi