netgescon-day0/docs/support/BUG-RISOLTI-E-VALIDAZIONI.md

5.2 KiB

Bug risolti e validazioni

Obiettivo

Questa sezione tiene separato il materiale di fix dal manuale generale. Qui annotiamo:

  • bug corretti
  • fix applicato
  • stato della verifica
  • eventuali controlli ancora da fare su staging

Registro sintetico

Supporto > Modifiche in memory exhaustion su log grandi

  • Problema: la pagina admin-filament/supporto/aggiornamento-nodo poteva andare in Allowed memory size exhausted durante loadRuntimeErrors() quando storage/logs/laravel.log diventava molto grande. Sul nodo staging il caso reale era un laravel.log da circa 278 MB.
  • Causa tecnica: appendFromNdjson() e appendFromLaravelLog() usavano file(...), quindi caricavano l intero file in RAM anche se poi la UI mostrava solo gli ultimi eventi utili.
  • Fix applicato: in app/Filament/Pages/Supporto/Modifiche.php i lettori sono stati sostituiti con una lettura tail limitata per linee e byte (readTailLines()), mantenendo il comportamento della UI ma senza allocare l intero log.
  • Stato: [U] riprodotto e corretto sul nodo locale /var/www/netgescon; validazione eseguita via reflection su loadRuntimeErrors() con laravel.log grande, picco memoria rimasto intorno a 89 MB e 39 righe BUG caricate correttamente.
  • Prevenzione: non usare aumento del memory_limit come rimedio principale; mantenere logrotate attivo e preferire sempre parsing incrementale o tail bounded per i file operativi letti dalla UI.

Supporto > Modifiche con ProgramAclService assente su nodo staging

  • Problema: la pagina admin-filament/supporto/aggiornamento-nodo poteva andare in BindingResolutionException con Target class [App\Services\ProgramAclService] does not exist durante canAccess().
  • Causa tecnica: sul nodo staging il checkout deployato non conteneva app/Services/ProgramAclService.php; la pagina supporto dipendeva in modo rigido da quel service anche per un semplice controllo accessi.
  • Fix applicato: Modifiche::canAccess() usa ProgramAclService solo se la classe esiste e si risolve correttamente; se manca, fa fallback ai ruoli amministrativi (super-admin, admin, amministratore) e non blocca la pagina tecnica.
  • Stato: [U] validato su /var/www/netgescon con service realmente assente; App\Filament\Pages\Supporto\Modifiche::canAccess() non genera piu eccezioni e ritorna correttamente true per un utente amministrativo.
  • Prevenzione: nelle pagine di supporto e deploy evitare dipendenze rigide da moduli opzionali o non ancora allineati sul nodo; il pannello di recupero deve sempre avere un percorso di fallback minimale.

Ripristino bootstrap pannello admin

  • Problema: AdminFilamentPanelProvider.php era stato corrotto da una modifica incompleta e impediva il bootstrap corretto.
  • Fix applicato: ripristino struttura PHP e riallineamento del provider.
  • Stato: [U] risolto localmente, bootstrap Laravel nuovamente valido.

Token CTI Panasonic e lettura configurazione piu robusta

  • Problema: il flusso staging poteva fallire per risoluzione non coerente del token CTI.
  • Fix applicato: PanasonicCstaController riallineato a config/cti.php con risoluzione piu robusta.
  • Stato: [P] implementato e verificato in locale; su staging resta da completare la validazione end-to-end del canale reale.

Mismatch stabile/anno in Ordinarie

  • Problema: la pagina gescon/ordinarie poteva mostrare dati non coerenti con stabile e anno scelti nella topbar.
  • Fix applicato: default anno dal contesto condiviso e centralizzazione risoluzione codice legacy stabile.
  • Stato: [P] implementato e validato a livello codice; da verificare sul caso reale staging con dati utente specifici.

Filtri acqua e servizi non coerenti con la gestione attiva

  • Problema: in condomini/servizi-utenze e archivio letture la selezione anno/stabile non era sempre rispettata in tutte le query.
  • Fix applicato: applicazione del filtro anno attivo e del contesto stabile ai blocchi acqua principali.
  • Stato: [P] implementato e testato sintatticamente; serve verifica funzionale con dati annuali reali su staging.

Tracciato tecnico SMDR e CSTA mescolato

  • Problema: una sola vista tecnica rendeva meno chiaro distinguere fallback SMDR da eventi CTI/CSTA ricchi.
  • Fix applicato: nuovi tab distinti in strumenti/post-it-gestione e vista click-to-call dedicata.
  • Stato: [U] implementato; da usare come base per test operativi PBX e future integrazioni provider-agnostic.

Validazioni eseguite nell ultimo ciclo

  • php artisan list eseguito con esito positivo dopo gli ultimi fix applicativi
  • controlli sintattici PHP sulle classi modificate senza errori
  • diagnostica editor senza errori sui file toccati
  • Supporto > Modifiche: validato il nuovo parsing tail-bounded dei log su nodo con laravel.log da 278 MB, senza esaurimento memoria

Validazioni ancora aperte

  • verificare su staging la nuova tab CTI / CSTA e Click-to-Call
  • verificare il caso reale di mismatch stabile/anno con dati staging
  • usare il filtro annuale acqua per l estrazione effettiva delle fatture e confermare il perimetro dati

Regola di aggiornamento

Ogni bug corretto va aggiornato qui in quattro righe:

  1. problema osservato
  2. fix applicato
  3. stato verifica locale
  4. stato verifica staging o nodi remoti