DevEnv nis2-agile and Claude Opus 4.8
1f2d48df7c
[DOCS] Epic C / C1 operativo — help + KB + cache-buster + v1.18.1
...
- help.js 'misure-requisiti': sezione 'Valutazione e stato di conformità' (stato per
requisito, valutazione del rischio che parte vuota, copia procedure di default) + nota.
- KB AI: doc SYSTEM su valutazione conformità + procedure/rischi di default (uuid 92979c05).
- Cache-buster ?v=20260622 (35 pagine), version.json 1.18.1, SW cache nis2-shell-v1.18.1.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-16 18:19:40 +02:00
DevEnv nis2-agile and Claude Opus 4.8
4570ce3ba1
[FEAT] Epic C / C1 operativo — copia procedure di default al 1° accesso (mig.048)
...
PolicyController::list ora, al primo accesso al modulo Procedure di un'org reale,
copia le 42 procedure di default (cfg_nis2_procedure) in policies come contenuto
editabile/cancellabile (decisione utente: copia per-org al 1° accesso).
- organizations.framework_procedures_seeded_at = idempotenza (no ri-copia).
- categoria policies assegnata da mappa famiglia NIST->ENUM; nis2_article=misura;
content riporta misure coperte + nota 'personalizzabile e cancellabile'.
- Salta org demo/sandbox (isDemo) per non inquinare il dataset dimostrativo.
- Best-effort: errore nel seed NON blocca la lista (log + return).
Smoke prod: org 151 3->45 policy (42 default, 10 categorie), idempotente al 2° accesso,
golden 151 poi ripristinato (cleanup). Additivo.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-16 18:18:28 +02:00
DevEnv nis2-agile and Claude Opus 4.8
b34bf3f9f6
[FEAT] Epic C / C1 operativo — valutazione/stato di conformità per requisito (mig.047)
...
org_requisito_state (org x requisito -> stato + valutazione del rischio + note),
la valutazione 'parte vuota'. È da qui che emerge lo stato di conformità (sostituirà il Gap ACN, C3).
- FrameworkController: catalog ora include lo stato per-org di ogni requisito (risoluzione org
OPZIONALE con verifica accesso = anti-IDOR); nuovo POST /framework/state (upsert, requireOrgRole
org_admin/compliance_manager, validazione stato + requisito esistente).
- misure-requisiti.html: colonna Stato/Valutazione (se org) + modale di valutazione (stato,
valutazione del rischio, note). api.frameworkSetState.
Smoke prod: catalog has_org/org_class OK; upsert non_conforme persistito e riletto; ISOLAMENTO
multi-tenant verificato (org 152 non visibile a org 151). Additivo.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-16 17:41:16 +02:00
DevEnv nis2-agile and Claude Opus 4.8
92d101b6f4
[FEAT] Epic C / C1 — Elenco Misure/Requisiti consultabile (read-only) + FrameworkController
...
UI data-driven sulle tabelle di config cfg_nis2_* (mig.046):
- FrameworkController::catalog (GET /api/framework/catalog): 43 misure / 116 requisiti,
procedura+rischio di default per requisito, flag importanti/essenziali, classe org.
- public/misure-requisiti.html (Bootstrap Italia/AGID): vista per misura / per area politica,
selettore soggetto (auto/importante/essenziale/tutti), righe che si 'spengono' per classe,
ricerca, sola lettura (codifica non modificabile). Voce sidebar in sezione Compliance.
- api.js frameworkCatalog(); routing index.php; i18n nav.framework IT/EN.
- help.js: guida 'misure-requisiti' (struttura, importanti/essenziali, riferimenti art.23/24 D.Lgs.).
- KB AI: doc SYSTEM ingestato (uuid 7871c1ea).
- Cache-buster ?v=20260621 (35 pagine), version 1.18.0, SW cache nis2-shell-v1.18.0.
- docs/simon/: file sorgente autoritativi (provenienza seed, codifica Simon non variata).
Smoke prod: /framework/catalog 200 (43/116, 6 misure solo-essenziali, GV.OC-04->Proc.01/Risk.01),
pagina 200, USR2 applicato. Additivo, nessuna modifica a dati esistenti.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-16 17:29:08 +02:00
DevEnv nis2-agile and Claude Opus 4.8
d37047987f
[FEAT] Epic C / C1 — tabelle di configurazione framework NIS2 (mig.046)
...
Fondazione data-driven (direttiva utente: configurabile via DB, no JSON hardcoded).
Fonte autoritativa: docs/simon/C1_Misure_Requisiti.xlsx + Vista (codifica Simon NON variata).
Tabelle system-level, sola-lettura per l'utente, configurabili da super_admin:
- cfg_nis2_ambiti (18 categorie NIST GV/ID/PR/DE/RS/RC)
- cfg_nis2_misure (43 misure; 6 solo-essenziali; area politica a..p, applies_important/essential)
- cfg_nis2_requisiti (116 requisiti; 92 importanti / 116 essenziali; ord N immutabile; FK misura/proc/risk)
- cfg_nis2_procedure (42 procedure di default Proc.01-42)
- cfg_nis2_rischi (84 rischi di default Risk.01-85)
Seed via application/data/nis2_framework_seed.json (import-only; runtime legge le cfg_*).
Applicato su prod (additivo, reversibile via DROP). Runner temp self-contained gia rimosso.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-16 17:07:12 +02:00
DevEnv nis2-agile and Claude Opus 4.8
690af688a0
[DOCS] Contesto sessione 2026-06-15 (notte): A4 COMPLETA 5/5 (RACI 4.3 + Scadenziario 4.4 + Stakeholder 4.5 live, commit b4d47d5->64866be, v1.17.2), help+i18n+KB aggiornati, 2 email ai tester (ringraziamento + punto del progetto); prossimo: feedback E2E tester sui nuovi moduli
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 23:23:05 +02:00
DevEnv nis2-agile and Claude Opus 4.8
64866be2ce
[DOCS] A4 design: Fasi 4.4 (scadenziario) e 4.5 (stakeholder) segnate LIVE — A4 COMPLETA 5/5
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 23:12:24 +02:00
DevEnv nis2-agile and Claude Opus 4.8
c5b00ccd96
[FEAT] A4 Fasi 4.4 + 4.5 (A4 COMPLETA 5/5): scadenziario centralizzato review_schedule (mig.044; ReviewScheduleController list/create/update/delete/complete/sync) + stakeholder estesi clienti/partner GV.SC-02 (mig.045 suppliers.stakeholder_type, SupplyChainController::stakeholderMap). Pagine review-schedule.html + stakeholders.html (Bootstrap Italia/AGID). Workflow build+review adversariale (3 major risolti: 045 da DELIMITER -> ALTER bare runner-safe). help GV.SC-04/05 allineati al titolo canonico ACN. Cache-buster ?v=20260620.
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 23:10:28 +02:00
DevEnv nis2-agile and Claude Opus 4.8
c7d36c910f
[DOCS] A4 design: Fase 4.3 RACI segnata LIVE + rettifica nomi reali (capa_actions/non_conformities, object_id polimorfico anti-IDOR)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 22:46:15 +02:00
DevEnv nis2-agile and Claude Opus 4.8
b4d47d58a2
[FEAT] A4 Fase 4.3 — Matrice RACI + link m2m: raci_assignments + procedure_inventory/procedure_risk/inventory_risk/risk_measure (mig.043), RaciController org-scoped (anti-IDOR, validazione object/measure), raci.html+raci.js (Bootstrap Italia/AGID), routing+sidebar+api+help+i18n. Build+review adversariale via workflow (0 finding critical/major). Cache-buster ?v=20260619.
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 22:44:08 +02:00
DevEnv nis2-agile and Claude Opus 4.8
05dfba6fcd
[DOCS] Contesto sessione 2026-06-15 (sera-2): A4 Fase 4.2 Competenze implementata e live (skills/role_skills/user_skills/skill_course_map, gapGrid, openAction NCR+CAPA, help+KB+PWA), review adversariale 0 finding, email tester inviata; prossimo 4.3 RACI
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 19:07:20 +02:00
DevEnv nis2-agile and Claude Opus 4.8
5368b0a61c
[FEAT] A4 Fase 4.2 — Competenze (skill/requisiti ruolo/gap) + alert→azione NCR+CAPA
...
Secondo modulo del modello relazionale A4 (docs/DESIGN_A4_RELATIONAL.md).
Backend:
- Migration 042 (docs/sql/042_competences.sql) + runner aggiornato (scripts/migrate-a4.php).
4 tabelle additive/idempotenti: skills (org-owned o globali), role_skills
(competenze richieste dal ruolo, UNIQUE role+skill), user_skills (possedute,
UNIQUE org+user+skill), skill_course_map. APPLICATA su prod (nis2-db v8.0.45,
TLSv1.3).
- CompetenceController (route 'competences'): catalog, skills CRUD, roleSkills,
userSkills, skillCourses (map/unmap), gapGrid (richiesto−posseduto per ruolo
con titolare), openAction. Multi-tenancy + anti-IDOR + livelli 1-5; competenze
globali in sola lettura per gli utenti org.
- alert→azione: openAction RIUSA il workflow NCR/CAPA reale (la tabella azioni è
capa_actions figlia di non_conformities, NON 'corrective_actions' che non
esiste): crea NCR (source='management_review', source_entity_type='competence_gap',
source_entity_id=role_skills.id) + capa_actions figlia. Anti-duplicato sul gap.
Zero ALTER alle tabelle esistenti. Ancoraggio PR.AT-01/02, GV.RR-04, art.24 D.Lgs.
Frontend:
- competenze.html (4 schede: Catalogo, Requisiti per ruolo, Competenze persone,
Gap & azioni) + js/competenze.js. Bootstrap Italia V2. CTA "Assegna corso"
(riuso /training/assign) e "Apri non conformità".
- Voce sidebar "Competenze" (common.js + common-bi.js + BI_PAGES) + nav.competences
i18n IT/EN. api.js: metodi comp* + assignTraining.
Help/KB/PWA:
- help.js: guida contestuale 'competences' (schede, calcolo gap, PR.AT-01/02,
GV.RR-04, art.24 D.Lgs., disclaimer no-parere-legale) + mappa pagina.
- sw.js: nome cache nis2-shell-v1.17.0 (allineamento PWA).
- Design doc corretto (rettifica capa_actions vs corrective_actions) + avanzamento 4.1/4.2.
Cache-buster: ?v=20260618 dei 5 JS condivisi su 32 HTML. version.json 1.16.0 -> 1.17.0.
Smoke E2E su prod (fpm reale): catalogo, requisito, competenza, gap=2, openAction
(NCR+CAPA), anti-dup 409, mappatura corso — tutti verdi; dati di test ripuliti.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 19:01:32 +02:00
DevEnv nis2-agile and Claude Opus 4.8
47199f1e4e
[DOCS] Contesto sessione 2026-06-15 (sera): A4 Fase 4.1 Organigramma implementata e live (org_roles, OrgRoleController, organigramma.html, help+KB), prossimo passo 4.2 skill/gap competenze
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 18:08:10 +02:00
DevEnv nis2-agile and Claude Opus 4.8
8540b53cb2
[FEAT] A4 Fase 4.1 — Organigramma (org_roles): ruoli/gerarchia + nodo governance Art.23
...
Primo modulo del modello relazionale A4 (docs/DESIGN_A4_RELATIONAL.md).
Backend:
- Migration 041 (docs/sql/041_org_roles.sql) + runner scripts/migrate-a4.php.
Tabella org_roles additiva/idempotente: gerarchia self-FK (parent_role_id),
titolare (holder_user_id), is_governance_body (organi amministrazione/direttivi
Art.23 D.Lgs.138/2024), description (GV.RR-02). APPLICATA su prod (container
nis2-db v8.0.45, TLSv1.3, 11 col, 4 FK).
- OrgRoleController: list (flat+tree arricchiti), get, create, update, delete,
assignableUsers. Multi-tenancy ancorata a getCurrentOrgId(), anti-IDOR
(id+organization_id), prevenzione cicli nella gerarchia, holder = membro org,
delete bloccato se ha figli (409). Route registrate in public/index.php.
Frontend:
- public/organigramma.html + js/organigramma.js: vista ad albero (badge governance,
titolare/vacante), editor crea/modifica/elimina con select padre anti-ciclo,
"crea struttura di base". Bootstrap Italia V2.
- Voce sidebar "Organigramma" (common.js + common-bi.js) + nav.org_chart i18n IT/EN.
- api.js: metodi orgRole* (wrapper _acn).
Help/KB:
- help.js: guida contestuale 'org' (cosa rappresenta, nodo Art.23, come si usa,
fonti certe D.Lgs.138/2024 art.23 + GV.RR-02 best practice, disclaimer no-parere-legale).
Cache-buster: bump ?v=20260617 dei 5 JS condivisi su tutte le 32 HTML referenti.
version.json 1.15.2 -> 1.16.0. Smoke E2E su prod (fpm reale): login, CRUD, tree,
anti-ciclo (422), delete-con-figli (409), cleanup tutti verdi.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 18:05:56 +02:00
DevEnv nis2-agile and Claude Opus 4.8
dcb9a14f0f
[DOCS] Help online: sezione Classificazione NIS2 aggiornata ad A2 (autovalutazione preliminare, size-independent art.3 c.5, criteri c.9 b/c/d, D.Lgs. non Direttiva) + bump ?v help.js. KB AI: ingestato doc aggiornamenti A1/A2/A3 (scope SYSTEM)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 17:45:14 +02:00
DevEnv nis2-agile and Claude Opus 4.8
8c28d5ae97
[DOCS] Contesto sessione 2026-06-15: segnalazioni Fattori (A1/A2/A3 implementate, A4 disegnato), Unica UI (-28 -bi), tester provisioning
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 17:42:43 +02:00
DevEnv nis2-agile and Claude Opus 4.8
dbda3efde4
[DOCS] A4 design: modello relazionale (organigramma+RACI hub, skill/gap competenze/formazione, m2m procedure/inventario/rischi, scadenziario centralizzato) — ancorato GV.RR/PR.AT/ID.AM/GV.PO/GV.SC/art.23-24, 5 fasi
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 17:36:46 +02:00
DevEnv nis2-agile and Claude Opus 4.8
3c5184bbae
[CLEANUP] Unica UI: rimossi 28 duplicati *-bi.html (orfani post-swap Bootstrap Italia, 0 riferimenti). Le pagine ufficiali (nomi senza -bi) SONO la UI V2 BI
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 17:17:34 +02:00
DevEnv nis2-agile and Claude Opus 4.8
717f9ac396
[FEAT] A2 UI: wizard onboarding esteso (bilancio, autonomia/gruppo, categorie size-independent art.3 c.5, mission GV.OC, codice etico facoltativo, 3 criteri sotto-soglia c.9 b/c/d) + classificazione v2 lato server + disclaimer ACN 'autovalutazione preliminare'. Markup Bootstrap Italia/AGID
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 17:17:34 +02:00
DevEnv nis2-agile and Claude Opus 4.8
c5fce7bdf7
[FEAT] A2 backend: Nis2ClassificationService v2 (matrice+bilancio, size-independent art.3 c.5, criteri sotto-soglia c.9 b/c/d, obblighi D.Lgs. art.23/24/25, esito 'preliminare non vincolante'); logica centralizzata (no duplicazione) + complete() salva i nuovi campi
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 17:06:17 +02:00
DevEnv nis2-agile and Claude Opus 4.8
b2f47c0a47
[FEAT] A2 migration 040: organizations += classificazione NIS2 (bilancio, autonomia, size-independent c.5, criteri c.9 b/c/d, mission, designation_basis, self_assessment preliminary) — applicata+verificata prod
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 16:56:56 +02:00
DevEnv nis2-agile and Claude Opus 4.8
37071e1d77
[DOCS] A2 onboarding: design + estratto verbatim art.3 D.Lgs.138/2024 (criteri sotto-soglia = c.9 lett.b/c/d CONFERMATO; individuazione = c.13)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 16:51:53 +02:00
DevEnv nis2-agile and Claude Opus 4.8
9fed095204
[FIX] A3: stringhe JS residue Asset -> bene/beni nelle pagine Inventario (titoli modale + notifiche)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 15:59:31 +02:00
DevEnv nis2-agile and Claude Opus 4.8
d009341d5a
[FIX] Completamento A1/A3 (segnalazioni Fattori): help.js citazioni obblighi -> D.Lgs.138/2024 art.23/24/25 + terminologia Asset -> Inventario/beni (pagine + guida)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 15:57:54 +02:00
DevEnv nis2-agile and Claude Opus 4.8
121b8c2003
[FIX] Allineamento normativo segnalazioni Fattori (A1+A3): citazioni obblighi -> D.Lgs.138/2024 art.23/24/25 (non Direttiva) + terminologia Asset -> Inventario
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 15:27:07 +02:00
DevEnv nis2-agile and Claude Opus 4.8
d50955d95a
[FEAT] Client CLI sicuro provisioning tester/admin (dry-run default, --expect guard, idempotente, SSO-sync-safe)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 08:10:26 +02:00
DevEnv nis2-agile and Claude Opus 4.8
eeeb014c49
[DOCS] Contesto: PWA v1.15.0 pushata+verificata + cron supervisore conferma autonoma (4 cicli rc=0)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 00:56:39 +02:00
DevEnv nis2-agile and Claude Opus 4.8
36513fa722
[FEAT] PWA installabile Android/iOS conforme AGID (v1.15.0)
...
- manifest.webmanifest + service worker (offline shell, /api network-only, asset stale-while-revalidate)
- set icone (192/512 + maskable + apple-touch + favicon), generate zero-deps (pure Node+zlib)
- tag PWA + viewport viewport-fit=cover (zoom mantenuto, WCAG 1.4.4) in 77 pagine HTML
- AGID/WCAG 2.1 AA: touch target >=44px, orientamento/zoom liberi, safe-area standalone
- generatori riproducibili: scripts/gen-pwa-icons.mjs + scripts/inject-pwa-head.mjs
- bump version 1.14.1 -> 1.15.0
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-14 21:09:54 +02:00
DevEnv nis2-agile and Claude Opus 4.8
b80bf2361c
[BACKUP] Sessione 2026-06-14: supervisore autonomo + contesto + mig.039 + UI V2 plan
...
- Supervisore autonomo ticket: prompt operativo + dry-run (scripts/), DRAFT rimosso; gate normativo gia' committato
- docs/CONTEXT_LAST_SESSION.md: sessione 2026-06-14 (supervisore LIVE, run#1/#2, rotazione Anthropic rinviata)
- docs/sql/039_integrity_keys.sql: migrazione integrita' DB (PK/UNIQUE/FK) gia' applicata in prod 12/6
- docs/MIGRATION_UI_V2.md: piano migrazione UI V2
- docs/nis2/incidente_r00/: 2 mockup incidente (gateway+dashboard)
- .gitignore: versiona public/vendor/ (asset Bootstrap Italia self-hosted)
- Fix accumulati: EmailService (kill-switch email), Incident/Onboarding/Organization/Services controllers, questionnaire, ReportService, CLAUDE.md standard
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-14 16:35:41 +02:00
DevEnv nis2-agile and Claude Opus 4.8
489a032658
[DOCS] Archivio adozione supervisore autonomo NIS2 (run#1 gate + run#2 release path + cron 17 */4 LIVE)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-14 14:08:19 +02:00
DevEnv nis2-agile and Claude Opus 4.8
dcbce3de5c
[FIX] Help online: rimossa icona FontAwesome morta (fa-comment-alt) post-swap V2
...
- public/js/help.js: rimossa unica occorrenza <i class="fas fa-comment-alt"></i>
(residuo non renderizzato dopo lo swap a Bootstrap Italia V2) + collassato lo
spazio ridondante, nella guida "Come aprire una segnalazione".
- Cache-buster mirato: help.js?v=20260613 -> 20260614 su 35 pagine public/*.html
(sibling common-bi.js/i18n.js/common.js/api.js/style.css lasciati invariati).
- public/version.json: 1.14.0 -> 1.14.1.
- Nessuna modifica a dati o schema DB. Ticket #367 (collaudo release supervisore).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-14 13:33:29 +02:00
DevEnv nis2-agile
0b32d4708f
[DOCS] Review NIS2 del prompt operativo supervisore: approvata + 2 aggiunte (cache-buster JS/CSS, git backup) + risposte 4 domande
2026-06-14 10:32:55 +02:00
DevEnv nis2-agile
2db5aa1407
[DOCS] Bozza gate normativo supervisore autonomo ticket (nis2-supervisor-prompt.md)
...
Gate 'fonti certe' per autonomous-supervisor-agent (AgileHub id=32): nessuna valutazione chiusa senza
fonte normativa citata; difesa prompt-injection; punti delicati (Allegati 3/4, IS-4, 24h/72h/1mese);
confini tecnici (DB container TLS SELECT-only, release edit+USR2 no maintenance flag). Per binding AgileHub.
2026-06-14 08:57:36 +02:00
DevEnv nis2-agile
ad3532a90a
[FIX] Pannello ARIA: chiusura (X+Esc) robusta + niente sovrapposizione ai pallini (stile TRPG)
...
Aprendo il pannello ARIA ora si nascondono nx-bar (campana/supporto) + ai-chat-fab -> niente overlap;
la X e Esc chiudono e ripristinano i pallini. Prima la X era fragile e il pannello copriva i bottoni.
Bump common.js?v=20260613d. (TRPG usa ai-assistant.js con stesso pattern toggle/hide.)
2026-06-14 08:56:08 +02:00
DevEnv nis2-agile
4341d86c4c
[UI] Allineato a TRPG/AgileHub: rimosso auto-inject feedback.js (doppione) -> solo bug-reporter
...
NIS2 aveva DUE sistemi feedback: feedback.js (pill cyan 'Segnala/Feedback' + modale scuro) + bug-reporter
AgileHub (campana+supporto). TRPG/ALLTAX usano solo bug-reporter (verificato: trpg ha app/js/bug-reporter.js,
nessun feedback.js). Rimosso l'auto-inject di feedback.js da common.js -> resta il trittico pallini
(notifiche + supporto + ARIA) come la suite. Verificato headless: feedback-fab assente, nx-bell/nx-bug/ai-chat
presenti. Bump common.js?v=20260613c (auto-refetch). feedback.js/api restano nel repo, non iniettati.
2026-06-14 08:33:13 +02:00
DevEnv nis2-agile
30cac8479a
[FIX] Modali showModal() invisibili su V2 (solo sfondo grigio): conflitto .modal con Bootstrap Italia
...
BI introduce .modal{display:none;position:fixed} che nascondeva i nostri modali custom (help, genera-AI,
conferme, crea-rischio...) -> si vedeva solo il backdrop grigio. Aggiunto override scoped
'.modal-overlay .modal{display:block;position:relative;...}' in style.css (specificità > BI, caricato dopo).
Verificato headless: modale help display:block height:765 visible:true. Bump style.css?v=20260613b (auto-refetch).
2026-06-14 08:00:13 +02:00
DevEnv nis2-agile
959ede968d
[FIX] Feedback widget: cablata X-API-Key NIS2 (nis2_ak_dev_...) in common.js + bump common.js?v=20260613b
...
Risolve il 401 del bug-reporter ('Header X-API-Key o Authorization Bearer richiesto'): il widget ora
manda X-API-Key -> gateway ticket AgileHub OK (tenant 7, provenance corretta). Chiave fornita da AgileHub
(full tenant-key, va nel JS pubblico = stesso compromesso TRPG/ALLTAX; debito 'token low-priv' rimandato).
Bump versione common.js -> auto-refetch senza hard-refresh.
2026-06-13 19:21:56 +02:00
DevEnv nis2-agile
3c484fe604
[FIX] Cache-buster ?v=20260613 sui JS/CSS modificati (help/common/common-bi/i18n/feedback/style/demo) + bump bug-reporter + demo assets
...
Risolve 'le modifiche non si vedono': /js/help.js era senza ?v -> browser serviva la versione cached
vecchia. 281 ref su 57 pagine + injection demo/bug-reporter aggiornate.
2026-06-13 19:17:59 +02:00
DevEnv nis2-agile
b49044c57f
[FIX] FAB segnalazione/ARIA: icone FontAwesome -> SVG inline (regressione swap BI) + slot data-api-key
...
Icone: bug-reporter.js (nx-bell fa-bell, nx-bug fa-life-ring) + common.js ai-chat-fab/header/send
(fa-wand-magic-sparkles, fa-paper-plane) erano FA, rimosso dallo swap BI -> cerchi vuoti. Sostituite con
SVG inline (currentColor, self-contained). Verificato headless: 3 FAB renderizzano svg.
Auth widget: cablato s.dataset.apiKey <- window.NEXUS_WIDGET_API_KEY (X-API-Key gateway AgileHub, era
assente -> 401). _detectUser ora legge anche nis2_access_token. SERVE la chiave X-API-Key da AgileHub.
2026-06-13 18:49:49 +02:00
DevEnv nis2-agile
703831c556
[DEMO] Checklist: step 9 = Assets/GV.OC-04 (era cross-analysis gate-ato) + azione re-tag RAG AgileHub
2026-06-13 13:03:01 +02:00
DevEnv nis2-agile
8c0074aa5d
[DEMO] Polish step 9: cross-analysis (gate consultant) -> Assets/GV.OC-04 (visibile al demo-user)
...
cross-analysis e gate-ato consultant/super_admin: per il demo-user (compliance_manager) renderizza
'riservata ai Consulenti/INSUFFICIENT_ROLE' e NON costruisce #chat-input/#quick-qs/#tab-chat -> highlight
impossibili. Sostituito con Assets (relevance scoring GV.OC-04): feature distintiva NIS2, pienamente
visibile, gia nel dataset 996001. Highlight #asset-stats + #assets-container verificati in browser reale
(ok:true, errs:[]). L'AI resta dimostrata da ARIA-narratore + AI gap analysis (step 2).
RICHIEDE re-tag RAG lato AgileHub: step9 -> mappa 08_assets (era 15_cross-analysis).
2026-06-13 13:02:34 +02:00
DevEnv nis2-agile
3ef69dfd74
[DEMO] Run 10-step browser reale: fix manifest step 9 (cross-analysis -> #portfolio-header)
...
Harness same-origin sui 10 step ha trovato 1 difetto reale: step 9 puntava a #quick-qs/#chat-input che
il JS non renderizza (tab chat non-default, assenti nel DOM) -> ri-ancorato a #portfolio-header (presente,
highlightApplied:true confermato). Gli altri 'NOT_FOUND' erano artefatti --virtual-time-budget: incidents
#crit-*, policies #ai-*, supply-chain #assessment-live-score sono presenti nel DOM renderizzato (dump 7s),
il vero avatar li trova al loro at_ms. 10/10 step ora risolvibili.
2026-06-13 12:51:07 +02:00
DevEnv nis2-agile
d96a5b5f49
[DEMO] Checklist: postMessage->highlight PROVATO in browser reale (ok:true, highlightApplied:true, errs:[])
...
Harness same-origin temp sul sottodominio + headless chrome: ready -> highlight #compliance-gauge ->
classe nis2-demo-hl applicata, 0 errori. Il SPA esegue i comandi del widget in un browser vero.
Resta solo il giro completo 10 step col widget AgileHub live (conferma di produzione).
2026-06-13 11:47:22 +02:00
DevEnv nis2-agile
7008b9ecc4
[DEMO] Checklist: aggiunta validazione browser headless NIS2 (auth+runtime OK, 2 bug fixati fcf8b09)
2026-06-13 11:31:14 +02:00
DevEnv nis2-agile
fcf8b0963b
[DEMO] Fix 2 bug SPA-side trovati al collaudo browser headless (auth in-memory + boot seed)
...
Il collaudo curl validava il backend ma non l'esecuzione JS nel browser. Con google-chrome --dump-dom:
1) common-bi.js: sync api.token/orgId IN-MEMORY (api.js crea l'istanza prima leggendo localStorage vuoto
→ checkAuth vedeva token null → redirect a login). Ora la SPA si auto-autentica.
2) demo-mode.js boot(): non bloccare sul seed quando HMAC_ENFORCE=false (cross-origin il seed non arriva;
non serve, HMAC off) → il runtime (banner/listener/ready) ora parte.
Verificato headless su dashboard/risks/incidents: login:0, banner+nis2-demo-on presenti.
2026-06-13 11:30:55 +02:00
DevEnv nis2-agile
f946b3a9ca
[DEMO] Checklist smoke avatar-in-the-loop + telemetria demo_events (parent origin confermato dimostrazione)
...
Criteri oggettivi per-step (navigate+highlight attesi, ARIA fonti certe), pre-flight verde, e query
demo_events per riscontro lato NIS2 post-giro. Smoke browser-driven da AgileHub, nessuna finestra bloccante.
2026-06-13 11:00:45 +02:00
DevEnv nis2-agile
bf14d9937c
[DEMO] Collaudo E2E lato NIS2 PASS (0 difetti, 5 dimensioni) — pronti per giro avatar-in-the-loop
...
Via sottodominio: integrità proxy (md5 parity, 17 viste+7 asset 200), auto-auth (read 200/write 403,
tenant isolation, spoof org ignorato), manifest 10 step 21/21 selettori presenti, endpoint codici attesi,
asset demo gated. Auth reale intatta. Workflow collaudo wf_c473580d-ec3.
2026-06-13 10:36:09 +02:00
DevEnv nis2-agile
1f77f91ec6
[DEMO] Archivio: AgileHub Fase1 RAG(415)+formazione G1+sottodominio reverse-proxy; handoff #2 RISOLTO
...
Sottodominio nis2.dimostrazione.agile.software live (reverse-proxy). DEMO_BASE allineato (3e8a90f ).
Punto coordinamento #2 (same-origin) marcato RISOLTO via sottodominio. Collaudo E2E in corso.
2026-06-13 10:33:59 +02:00
DevEnv nis2-agile
3e8a90f969
[DEMO] Sottodominio: DEMO_BASE -> nis2.dimostrazione.agile.software + origin allowlist postMessage
...
AgileHub ha consegnato il reverse-proxy nis2.dimostrazione.agile.software -> nis2.agile.software.
- DemoController.DEMO_BASE default = sottodominio (spa_iframe_url/manifest/credentials lì); env DEMO_BASE_URL override.
- demo-mode.js: origin-check ora ALLOWLIST (dimostrazione + nis2.dimostrazione) robusto alla topologia widget;
outbound postMessage mirato all'origin reale del parent (ancestorOrigins/captured).
2026-06-13 10:31:46 +02:00
DevEnv nis2-agile
460d435a47
[DEMO] Auto-auth SPA demo: demo_jwt nel fragment spa_iframe_url + bootstrap token sincrono in common-bi.js
...
Chiude il gap auth: la SPA demo si auto-autentica col demo_jwt (token API nis2_access_token + org dal
payload) PRIMA di checkAuth, cross-origin (niente sessionStorage same-origin). spa_iframe_url ora atterra
su /dashboard.html?demo=..#djwt=... DemoController.DEMO_BASE override via env DEMO_BASE_URL (switch a
sottodominio senza codice). USR2 richiesto per DemoController.
2026-06-13 10:00:28 +02:00