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
Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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
|
||||
}
|
||||
@@ -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,
|
||||
|
||||
144
wiki/audit-doublons-21avr-1215.md
Normal file
144
wiki/audit-doublons-21avr-1215.md
Normal 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.
|
||||
Reference in New Issue
Block a user