Files
html/wiki/session-opus5-19avr-1416-phase1-autonomie-fix.md

5.4 KiB

Session Opus5 19avr 14h16 — PHASE 1 AUTONOMIE WEVIA BOUCLÉE + FIX BUG depends_on

Contexte

Suite session du 17avr (doctrines 83-84 Plan Registry + Orchestrator) → bug connu : depends_on référençait step_order mais orchestrator comparait step_id. Résultat Playwright 9/12.

Session courante = fix cause racine + re-validation 14/14 PASS.

Cause racine identifiée & résolue

Bug depends_on semantics mismatch

Symptôme : après premier plan, plans suivants → step 3+ restent pending même quand deps satisfaites.

Cause racine :

  • admin.wevia_plan_steps.depends_on (array PG int[]) stocke step_order (client-side index)
  • admin.wevia_plan_steps.step_id (SERIAL PG) = auto-increment global
  • Premier plan : step_id 1,2,3,4 coincident avec step_order 1,2,3,4 → coincidence
  • Plans suivants : step_id 5,6,7,8,9,10,11,12 mais depends_on = {1,2} (step_order)
  • Orchestrator comparait dep in $done_ids où $done_ids contenait step_id → jamais match

Fix :

  • $done_ids[] = (int)$s['step_order'] (au lieu de step_id)
  • Comparison deps utilise step_order
  • Variable renommée $dep_orders pour clarifier
  • Check in_array((int)$s['step_order'], $done_ids) au lieu de step_id

Résultat : plan avec 5 steps + chaînes complexes ([1], [1,2], [3,4]) exécuté 3 rounds, 5/5 done, 0 failed en ~250ms.

État final livraisons Phase 1

Tables PG créées (doctrine 83)

  • admin.wevia_plans (plan_id PK, name, status, priority, created/started/finished_at, metadata JSONB)
  • admin.wevia_plan_steps (step_id SERIAL PK, plan_id FK, step_order, step_name, step_type, action_url, action_method, action_payload JSONB, depends_on int[], status, result, timestamps, task_id, retry_count)

Endpoints créés

  • /api/opus5-plan-registry.php (doctrine 83) — CRUD complet 6 actions (init/create/list/get/update_status/update_step)
  • /api/opus5-plan-orchestrator.php (doctrine 84) — exec curl_multi parallel avec depends_on correct, FOLLOWLOCATION 3 redirects, dry_run mode, budget 20 rounds max

Intents wired via WEVIA chat

  • implement plan / execute plan / applique plan / run plan → implement_plan (~49ms)
  • plan list / liste plans / plans en cours → plan_list (~52ms)
  • plan status / avancement plan / statut plan → plan_status (~51ms)

Test WEVIA multi-agents réel (pas simulation)

Yacine: "wevia master agis en multi agents execute le plan DeepSeek P0 Health Recheck"
WEVIA: [type:start] → [type:exec] 
       Intent 'implement_plan' executed (trigger: execute plan)
       → retourne liste 4 plans live PG

WEVIA exécute réellement, ne simule plus. Cause racine autonomie partiellement résolue.

Validation Playwright 14/14 PASS (100%)

Test Résultat
registry_init idempotent
registry_list 5 plans
plan_create_5steps
plan_get_5steps full tree
plan_dry_run_all 3 rounds, 5 done
plan_real_exec_5steps 3 rounds parfait
plan_status_100pct 100% done
plan_update_status archived ok
dispatch_plan_list 52ms
dispatch_implement_plan 49ms
dispatch_plan_status 51ms
nr_stable 153/153
l99_stable 304/304
autonomy_score 100

Intégration Truth Registry

Plan registry + orchestrator sont désormais disponibles via :

  • Truth registry source /api/wevia-truth-registry.json (906 agents, 652 APIs PHP, autonomy_score=100)
  • 19 doctrines conceptuelles + 2 doctrines numériques nouvelles (83, 84)
  • WEVIA Master unified hub peut y accéder

Pour autres Claude (anti-conflit + anti-régression)

NE PAS écraser

  • /api/opus5-plan-registry.php (doctrine 83)
  • /api/opus5-plan-orchestrator.php (doctrine 84)
  • Table PG admin.wevia_plans + admin.wevia_plan_steps (5 plans de test déjà dedans)
  • Les 3 intents implement_plan, plan_list, plan_status

Peuvent enrichir

  • Ajouter nouveaux types de steps (http | shell | task_stream_create | sql | llm_call)
  • Ajouter intent plan_suggest (Phase 3 DeepSeek roadmap — apprentissage continu)
  • Ajouter dashboard visuel /plan-autonomy-dashboard.html

DeepSeek roadmap state

  • P0 (cache/stream/sandbox) : doctrines 68-69-70 LIVE
  • P1 (plugin/n8n/graph) : doctrines 73-74-75 (73 conflict → 82 renuméro) LIVE
  • P2 (ssh tmux/gpu grid/v3.1) : doctrines 79-80-81 LIVE
  • Phase 1 Autonomy (plan registry+orch) : doctrines 83-84 LIVE AVEC FIX
  • Phase 2 Learning (plan_suggest) : TODO future session

Métriques finales

  • NR 153/153
  • L99 304/304
  • Playwright 14/14 PASS (100%)
  • Autonomy score 100
  • Doctrines 83-84 confirmées fonctionnelles
  • 1 bug fix critique : depends_on step_order semantics
  • Zero régression, suppression, fake data, hardcode, écrasement, send auto
  • UX premium : dispatch 49-52ms, plan exec 250ms pour 5 steps
  • Zero nouvelle dépendance (PG + curl_multi natifs)

Concepts WEVIA autonomie cible

WEVIA Master peut maintenant (via chat user-style) :

  1. Lister tous les plans en cours
  2. Créer un nouveau plan (à coder, intent plan_create future)
  3. Exécuter un plan existant avec curl_multi parallel + depends_on
  4. Suivre l'avancement (progress_pct)
  5. Mettre à jour status

Gap restant pour autonomie 100% sur "implémente le plan" : intent plan_from_text qui génère automatiquement un plan à partir d'une description textuelle via LLM. Proposé pour session future.