diff --git a/docs/COLLAUDO_SMOKE_AVATAR_CHECKLIST.md b/docs/COLLAUDO_SMOKE_AVATAR_CHECKLIST.md index 2276750..469892e 100644 --- a/docs/COLLAUDO_SMOKE_AVATAR_CHECKLIST.md +++ b/docs/COLLAUDO_SMOKE_AVATAR_CHECKLIST.md @@ -44,5 +44,12 @@ Harness same-origin temporaneo sul sottodominio (origin in allowlist) + headless `ready` ✓ → `postMessage(highlight #compliance-gauge)` ✓ → classe `nis2-demo-hl` **applicata sull'elemento** ✓ → `errs: []`. Risultato: `{ok:true, ready:true, highlightApplied:true, errs:[]}`. → Il SPA esegue i comandi del widget in un browser vero. (`step_animation_done` non rilevato solo per via del `--virtual-time-budget` headless; in browser interattivo scocca.) Resta da fare solo il giro completo coi 10 step guidato dal **widget AgileHub live** (conferma di produzione). +## Run NIS2 dei 10 step in browser reale (2026-06-13) — eseguito + 1 fix manifest +Harness same-origin che simula il widget su tutti i 10 step (navigate→highlight + telemetria `step_completed`): +- **Mechanism OK**: navigate + highlight applicati; eventi su `demo_events`. +- **1 difetto reale trovato e FIXATO** (commit di questo batch): step 9 **cross-analysis** puntava a `#quick-qs`/`#chat-input` che il JS NON renderizza (vivono nel tab chat non-default; assenti nel DOM dump) → ri-ancorato a **`#portfolio-header`** (presente; confermato `highlightApplied:true`). +- **Falsi negativi chiariti**: incidents (`#crit-*`), policies (`#ai-*`), supply-chain (`#assessment-live-score`) risultavano NOT_FOUND nell'harness SOLO per l'artefatto `--virtual-time-budget` (highlight postato a ready+0, prima del render async). Verificati **presenti nel DOM renderizzato** (dump a 7s) → il vero avatar (highlight a `at_ms` 6–38s) li trova. Nessun fix necessario. +→ Esito: 10/10 step con selettori risolvibili nel DOM al timing reale dell'avatar. + ## Coordinamento Lo smoke è browser-driven e lo lancia AgileHub **quando vuole** (nessuna finestra oraria bloccante richiesta dal nostro lato). Dopo il giro: AgileHub verifica retrieval RAG 415 + comportamento persona; NIS2 verifica `demo_events` + console. Se emerge un difetto lato NIS2 → fix + USR2 in pochi minuti. diff --git a/public/demo/nis2-tour-2026.json b/public/demo/nis2-tour-2026.json index 0e9429f..0ef1bd5 100644 --- a/public/demo/nis2-tour-2026.json +++ b/public/demo/nis2-tour-2026.json @@ -97,9 +97,9 @@ "view_target": "cross-analysis", "narration": { "text_it": "Infine, l'assistente con cui stai parlando può rispondere a domande sulla normativa e sul prodotto, citando sempre fonti certe: non inventa mai riferimenti. Qui puoi anche avviare analisi trasversali sul portafoglio.", "kb_article_slug": "demo:nis2-tour-2026:step9", "duration_ms_it": 52000 }, "highlights": [ - { "at_ms": 8000, "selector": "#quick-qs", "style": "halo", "duration_ms": 5000 }, - { "at_ms": 26000, "selector": "#chat-input", "style": "pulse-blue", "duration_ms": 5000 } + { "at_ms": 9000, "selector": "#portfolio-header", "style": "halo", "duration_ms": 6000 } ], + "_note_step9": "Highlight su #portfolio-header (presente nel DOM iniziale). #quick-qs/#chat-input vivono nel tab chat non renderizzato di default → non ancorabili senza azione open-tab (rimandato al cablaggio data-demo-action).", "on_enter": [{ "type": "navigate", "view": "cross-analysis" }], "on_exit": [] }, {