Files
html/wiki/session-opus-18avr-V57-autonomy-pool-scale.md

4.1 KiB
Raw Permalink Blame History

Session V57 · Autonomy WEVIA Master · 18 avril 2026

Opus : opus-yacine-18avr-autonomy-v57
Yacine validation : pool resize AU MAX · V57 append-only après reconciliation B12
Status : LIVRÉ (partie 1 + 2 · partie 3 pending approval)

Contexte

Session multi-cycles sur autonomie WEVIA Master. Diagnostic : pool exec FPM saturé (start=2, max=4) → timeout sur toute requête simultanée.

Reconciliation multi-Claude exhaustive

Avant toute action, inspection des commits récents. Résultat :

Commit Opus Livrable
6db8f3a3 Opus WIRE B12 honesty guard + renew-pat.py + E2E test
acef9871 Opus D93 doctrine-tips-cyber.md (219 lignes)
1111d82c Opus D93b persona_verify autowire
63c8c7c3 Opus D94 multiagent screenshots V76 Chrome E2E
fe1fc03f Opus 20 lignes wevia-autonomous.php + wired-pending opus4-*

Conclusion : sur mes 10 chantiers initiaux, 7 étaient déjà couverts. Restent 3 vrais gaps → V57.

Fix 1 · Pool exec AU MAX

Fichier : /etc/php/8.5/fpm/pool.d/exec.conf
GOLD : /opt/wevads/vault/fpm-gold/exec.conf.gold_pool_scale_18avr

Paramètre Avant Après
pm.start_servers 2 12
pm.min_spare_servers 1 8
pm.max_spare_servers 4 25
pm.max_children 50 60
pm.max_requests 200 500
  • php-fpm8.5 -t : OK
  • systemctl reload php8.5-fpm : OK zero downtime
  • Workers actifs post-reload : 12 (vs 2 avant)
  • WEVIA Master scan 24 agents : 3.08s (vs timeout avant) · 6× capacity

Fix 2 · Patch nginx V57 dual-pool fast-path

Fichier : /etc/nginx/sites-enabled/weval-consulting ligne 641
GOLD : /opt/wevads/vault/nginx-gold/weval-consulting.gold_autonomy_18avr

location = /api/wevia-master-api.php {
    set $wevia_sock unix:/run/php/php8.5-fpm-exec.sock;
    if ($args ~ "fast=1") { set $wevia_sock unix:/run/php/php8.4-fpm-fast.sock; }
    include fastcgi_params;
    fastcgi_pass $wevia_sock;
    fastcgi_param SCRIPT_FILENAME /var/www/html/api/wevia-master-api.php;
    fastcgi_read_timeout 120s;
    fastcgi_buffering off;
}
  • nginx -t : syntax OK · reload zero downtime
  • Cycle chattr -i → patch → chattr +i préservé
  • Leçon : ne JAMAIS mettre le GOLD dans sites-enabled/ (conflit duplicate server)

Fix 3 · 3 intents V57 via wired-pending (pattern officiel)

Fichiers déployés (PENDING_APPROVAL) :

  • /var/www/html/api/wired-pending/intent-v57-plan_execute.php (744 B)
  • /var/www/html/api/wired-pending/intent-v57-gpus_free.php (977 B)
  • /var/www/html/api/wired-pending/intent-v57-pool_status.php (813 B)

Approche initiale abandonnée : patch direct wevia-autonomous.php → race condition avec autre Opus à 12:58:32 → syntaxe cassée → rollback immédiat vers GOLD (doctrine zero régression respectée).
Approche finale adoptée : pattern officiel wired-pending/ + statut PENDING_APPROVAL → Yacine promeut quand prêt via wiring queue.

Incidents rencontrés

Incident Cause racine Résolution
CX endpoint 502 intermittent Pool FPM saturé Phase 0 · pool scale AU MAX
nginx -t failed duplicate server GOLD dans sites-enabled/ Déplacé vers /opt/wevads/vault/nginx-gold/
Syntax error wevia-autonomous.php Race condition Opus parallèle Rollback GOLD + pivot vers wired-pending
opus-locks DEAD PID éphémère CX request À améliorer en V58 (session logique)

Contraintes respectées

Zero suppression · Zero fake data · Zero hardcode · Zero régression (rollback immédiat au moindre doute) · Zero écrasement sans Yacine OK · Zero send mail auto · GOLD avant chaque modif (×5) · Append-only · UX premium (hub graphite+gold) · Multi-Opus coordonné

Next steps (V58)

  • Promouvoir les 3 intents V57 de PENDING à IMPLEMENTED (via Yacine chat)
  • opus-lock-manager : session logique au lieu de PID éphémère
  • Déployer wevia-autonomy-hub.html dans Arsenal après ton OK
  • multiagent-distributor.py en systemd service
  • wevia-reload-pool.php endpoint (self-reload quand saturation)