From 4ef1faf05fdf3b3f26121e4c19865a40b8163971 Mon Sep 17 00:00:00 2001 From: DevEnv nis2-agile Date: Wed, 26 Aug 2026 18:30:43 +0200 Subject: [PATCH] [DOCS] Contesto 2026-08-25: fix Documenti Istituzionali (NO_ORG) + Organigramma freeze/MutationObserver Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/CONTEXT_LAST_SESSION.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/CONTEXT_LAST_SESSION.md b/docs/CONTEXT_LAST_SESSION.md index fd8b566..3401a0e 100644 --- a/docs/CONTEXT_LAST_SESSION.md +++ b/docs/CONTEXT_LAST_SESSION.md @@ -2,6 +2,16 @@ > Il 2026-05-29 ci sono state DUE sessioni: **pomeriggio** e **mattina** (TRPG). Il 2026-05-30 sessione lunga: gap competitivi P1/P2/P3 + connettori + review multi-agente + fix. +## 2026-08-25 — 2 segnalazioni Simon: Documenti Istituzionali (bug NO_ORG) + Organigramma freeze — RISOLTE + +Memorie: [[project_institutional_docs]], [[reference_createicons_mutationobserver_loop]], [[project_prod_topology_host_fpm]]. + +**Segn. 1 — Documenti Istituzionali (#499 ri-segnalato, screenshot: solo "Aggiungi voce", niente 5 voci):** era un **BUG vero, non cache** (mia diagnosi iniziale "cache" SBAGLIATA, corretta con Simon). Causa: `InstitutionalDocsController::list()` usava `requireAuth()+getCurrentOrgId()` ma `currentOrgId` e' popolato SOLO da `requireOrgAccess()` → endpoint sempre **NO_ORG (400)** → `loadDocs` riceveva `standards=[]` → card con sola "Aggiungi voce". **Non ha MAI funzionato a runtime.** Fix (commit **396783c**): backend `list()` usa `resolveOrgId()` (risolve X-Organization-Id senza lanciare) + restituisce SEMPRE le 5 voci; frontend `dashboard.js` `renderDocsCard()`+`STD_FALLBACK` (5 voci sempre visibili anche se API fallisce). Buster dashboard.js `20260825`, php-fpm ricaricato. Verificato puppeteer (996003): 5 voci visibili, api standards=5, 0 errori. **GOTCHA: endpoint per-org non-membership → usare `resolveOrgId()`, NON `requireAuth()+getCurrentOrgId()`.** + +**Segn. 2 — Organigramma "Nuovo Ruolo" bloccava il sito:** freeze ELIMINATO. Causa NON era ciclo dati (0 cicli in org_roles, verificato) ma l'anti-pattern **MutationObserver(subtree)→`lucide.createIcons()`** che si auto-ritriggerava (createIcons muta il DOM). Fix (commit **1f9d837**): debounce+disconnect. + hardening guardia anti-ciclo client+server `buildTree`/`orgNodeHtml` (commit **bfda75b**, php-fpm reload). **Bonus proattivo:** stesso anti-pattern trovato e corretto in **raci.html + competenze.html** (commit **69f3894**). Test puppeteer: "Nuovo Ruolo" apre il modale (visibile), 0 errori — il "nessun effetto" di Simon era cache/versione intermedia → hard-reload. Help online: aggiunta sezione «Documenti istituzionali» (commit **9eeef78**). + +Email a Simon + copia cristiano.benassati@ (201) per entrambe (con scuse per la diagnosi "cache" errata sul #499). ⚠️ Chiave SSH temporanea rigenerata da Cristiano (`.ssh-temp/hetzner_key`, finestra 12h) — scade ~22:00 UTC. Nessuna nuova migrazione (prossima=068). + ## 2026-08-03 — Rework pagina Rischi (richieste Simon): matrice 4 fasce + toggle inerente/residuo, trasversali a 12 colonne — LIVE v1.27.0 Memorie: [[project_ticket_500_risks_page]] (aggiornata), [[project_modulo_azioni]].