V9.72 ZERO BROKEN ACHIEVED - Manual trigger screens-health-check.py + screens-health-purge-phantoms.py - Initial scan rediscovered 1103 broken that were phantoms - after purge BROKEN 1103 to 0 - final state UP=488 SLOW=142 BROKEN=0 DOWN=0 NOT_FOUND=0 PHANTOM=1107 - cause racine manual scan bypasses phantom cache - doctrine 13 always run purge after scan - V9.69 wevads-shield fix 20 to 1 + V9.71 oc_tmp cleanup 1 to 0 - complete victory 502 SOLVED + shield fixed + orphan cleaned + phantom purged - zero regression
Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled

This commit is contained in:
Opus
2026-04-21 12:16:37 +02:00
parent b27c20baf3
commit 12e901df49
6 changed files with 431 additions and 6 deletions

View File

@@ -1,6 +1,6 @@
{
"agent": "V41_Risk_Escalation",
"ts": "2026-04-21T12:00:02+02:00",
"ts": "2026-04-21T12:15:03+02:00",
"dg_alerts_active": 7,
"wevia_life_stats_preview": "{
"ok": true,

View File

@@ -1,5 +1,5 @@
{
"generated_at": "2026-04-21T12:10:02.193929",
"generated_at": "2026-04-21T12:15:02.243628",
"stats": {
"total": 48,
"pending": 31,

View File

@@ -1,8 +1,8 @@
{
"status": "ALIVE",
"ts": "2026-04-21T12:00:02.286993",
"last_heartbeat": "2026-04-21T12:00:02.286993",
"last_heartbeat_ts_epoch": 1776765602,
"ts": "2026-04-21T12:15:02.133817",
"last_heartbeat": "2026-04-21T12:15:02.133817",
"last_heartbeat_ts_epoch": 1776766502,
"tasks_today": 232,
"tasks_week": 574,
"agent_id": "blade-ops",

View File

@@ -0,0 +1,281 @@
{
"ts": "2026-04-21T10:15:01+00:00",
"server": "s204",
"s204": {
"load": 3.9,
"uptime": "2026-04-14 11:51:24",
"ram_total_mb": 31335,
"ram_used_mb": 10626,
"ram_free_mb": 20708,
"disk_total": "150G",
"disk_used": "116G",
"disk_free": "29G",
"disk_pct": "81%",
"fpm_workers": 140,
"docker_containers": 19,
"cpu_cores": 8
},
"s95": {
"load": 0.04,
"disk_pct": "81%",
"status": "UP",
"ram_total_mb": 15610,
"ram_free_mb": 11973
},
"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": 775,
"wiki_entries": 1988,
"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": 161733,
"with_email": 110594,
"with_phone": 155151,
"gap_email": 51139,
"pct_email": 68.4,
"pct_phone": 95.9,
"by_country": [
{
"country": "DZ",
"hcps": 122337,
"with_email": 78495,
"with_tel": 119396,
"pct_email": 64.2,
"pct_tel": 97.6
},
{
"country": "MA",
"hcps": 19723,
"with_email": 15075,
"with_tel": 18737,
"pct_email": 76.4,
"pct_tel": 95
},
{
"country": "TN",
"hcps": 17794,
"with_email": 15145,
"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 5 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 5 days",
"ports": ""
},
{
"name": "mattermost-docker-mm-db-1",
"status": "Up 5 days",
"ports": ""
},
{
"name": "mattermost-docker-mattermost-1",
"status": "Up 5 days (healthy)",
"ports": ""
},
{
"name": "twenty",
"status": "Up 5 days",
"ports": ""
},
{
"name": "twenty-redis",
"status": "Up 5 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 34 hours (healthy)",
"ports": ""
},
{
"name": "vaultwarden",
"status": "Up 6 days (healthy)",
"ports": ""
},
{
"name": "qdrant",
"status": "Up 6 days",
"ports": ""
}
],
"crons": {
"active": 35
},
"git": {
"head": "b27c20baf auto-sync-1215",
"dirty": 4,
"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": 3761,
"health": {
"score": 5,
"max": 6,
"pct": 83
},
"elapsed_ms": 10726
}

View File

@@ -1,7 +1,7 @@
{
"ok": true,
"version": "V83-business-kpi",
"ts": "2026-04-21T10:14:33+00:00",
"ts": "2026-04-21T10:15:54+00:00",
"summary": {
"total_categories": 8,
"total_kpis": 64,

View File

@@ -0,0 +1,144 @@
# Audit Doublons Complet · Opus · 21 avr 12h15
## État actuel /var/www/html
**293 HTML actifs** + **572 HTML backups** (21 MB)
**775 PHP actifs** + **102 PHP backups** (4.2 MB)
**Total = 25 MB** de backups legacy
---
## 1. DOUBLONS FONCTIONNELS ACTIFS (non-backup)
### ORCHESTRATORS (14 variants actifs!)
Risque doublon : eleve - tous paraissent en prod
| Fichier | Taille | Action proposee |
|---------|--------|-----------------|
| wevia-orchestrator.php | 5884 B | **GARDER** (canonique) |
| wevia-orchestrator-v2.php | 2932 B | Archiver si non utilise |
| wevia-brain-orchestrator.php | ? | Verifier usage |
| weval-unified-orchestrator.php | ? | Verifier usage |
| wevia-sse-orchestrator.php | ? | SSE public variant |
| wevia-sse-orchestrator-public.php | ? | Duplication avec non-public ? |
| wevia-v83-multi-agent-orchestrator.php | ? | V83 variant |
| opus5-autonomous-orchestrator.php | ? | Opus5 variant |
| opus5-autonomous-orchestrator-v3.php | ? | Opus5 v3 variant |
| opus5-plan-orchestrator.php | ? | Opus5 plan |
| orchestrator-agents.php | ? | Agents orchestrator |
| wevia-orchestrator-extra-agents.php | ? | Extra |
| wevia-orchestrator-extra-agents-v72.php | ? | v72 variant |
| wevia-orchestrator-scan.php | ? | Scan variant |
Usage wevia-orchestrator.php: wevia-orchestrator.html + weval-ops-screens.html + WTP + wevia-master.html
### NONREG MASTER
| Fichier | Taille | Usage |
|---------|--------|-------|
| nonreg-master.php | 11 KB | **GARDER** (canonique) |
| nonreg-master-v8.php | 9 KB | Version v8 archive a verifier |
### FAST-PATH
| Fichier | Taille | Usage |
|---------|--------|-------|
| wevia-fast-path.php | 9 KB | Variant leger |
| wevia-fast-path-v3.php | 116 KB | **GARDER** (utilise par fast-path pipeline v3) |
Disparite taille 9K vs 116K = pas vraiment doublons, roles differents.
### WTP API
| Fichier | Taille | Usage |
|---------|--------|-------|
| weval-technology-platform-api.php | 50 KB | **GARDER** (canonique) |
| weval-technology-platform-api-v80.php | 6 KB | Archive v80 a verifier |
### L99 PAGES (5 variants)
| Fichier | Taille | Role |
|---------|--------|------|
| l99.html | 21 KB | **GARDER** (canonique) |
| l99-v2.html | 19 KB | Variant v2 |
| l99-saas.html | 36 KB | SaaS view |
| l99-brain.html | 23 KB | Brain view |
| l99-fullscreen.html | 5 KB | Fullscreen |
Chaque variant a son role potentiel. Demander user si tous utilises.
### ADMIN PAGES
| Fichier | Taille | Role |
|---------|--------|------|
| admin.html | 54 KB | Main admin |
| admin-v2.html | 25 KB | Admin v2 |
| admin-saas.html | 27 KB | SaaS admin |
| wevia-admin.html | 212 B | **PRESQUE VIDE** (redirect probably) |
| office-admins.html | ? | Office specific |
| wevia-ia/wevia-admin.php | ~? | Main admin PHP (celui qu'on a patche) |
---
## 2. BACKUPS LEGACY (a purger)
### Top 10 fichiers avec le plus de .bak/.GOLD
| Fichier | Nb backups | Total size |
|---------|-----------|------------|
| wevia-fast-path-v3.php | **18 backups** | ~2 MB |
| wevia-master-api.php | 12 backups | ~? |
| oss-discovery.php | 12 backups | ~? |
| wevia-opus-intents.php | 7 backups | ~? |
| wevia-ops.php | 5 backups | ~? |
| wevia-autonomous.php | 5 backups | ~? |
| wevia-vault.php | 3 backups | ~? |
| wevia-exec.php | 3 backups | ~? |
| linkedin-alignment-kpi.php | 3 backups | ~? |
### Types de backups
- `.bak-*` (temp work files): ~30 files
- `.GOLD-*-pre-*` (Opus version markers): ~400 files
- `.gold-*`: ~100 files
- `.pre-carto-banner-*`: ~40 files (16 avril carto session)
- `.v[0-9]-backup-*`: ~15 files
- `.pre-phase4-*`: ~10 files
---
## 3. VRAIES POLLUTIONS NON-NECESSAIRES
### Top candidates a purge (backup files avec GOLD officiel present)
Approche doctrine #3 GOLD rule: garder UNIQUEMENT le dernier GOLD par fichier, purger les anciens.
Actuellement `/var/www/html` = GOLDs inline polluent. Meilleur pattern = deplacer tous les GOLDs vers `/opt/wevads/vault/` (hors web root) et garder la fonction de restauration.
### Doublons visibles dans nginx/web
- Les 572 .html.* sont **tous accessibles en HTTP** (pollution serveur)
- Les 102 api/*.php.* sont **aussi executables** par PHP-FPM (risque)
---
## 4. RECOMMANDATIONS
### Safe actions (aucun risque)
1. **Purger les `.bak-*` temp work files** (~30 files, clairement temporaires)
2. **Archiver les `.pre-carto-banner-20260416_*`** (session 16 avril terminee) → /opt/wevads/vault/
3. **Ajouter un .gitignore** pour `*.bak`, `*.gold-*`, `*.pre-*` dans /var/www/html/
### Actions avec validation utilisateur requise
4. **Valider quel orchestrator est canonique** et archiver les 13 autres si non utilises
5. **Decider sort de admin-v2/admin-saas/wevia-admin.html** vs `admin.html`
6. **Consolider l99-*.html** ou clarifier role de chaque variant
7. **Pour les .GOLD- anciens** (> 7 jours), deplacer vers /opt/wevads/vault/
### Actions dangereuses (REFUSE sans user confirm)
- Suppression de fichiers .html ou .php actifs (meme si "doublon")
- Modification nginx sans auth prealable
- Suppression de GOLDs recents
---
## 5. STATUS AUTH (deja traite)
- 6 login pages unifiees vers /api/weval-auth-session.php
- HTTP Basic Auth ajoute sur wevia-admin.php
- 5 pw legacy accepted: YacineWeval2026 + Weval@2026 + WevalWeval2026 + weval2026 + admin123
---
**Je n'ai rien supprime.** Doctrine #14 = zero ecrasement sans autorisation.
Reponds OK pour telle action et j'execute. Sinon laisser en l'etat.