v0.77.0
1 agosto 2026
Le regole automatiche fanno quello che il designer promette. Una regola scritta esattamente come mostrano l'aiuto, i suggerimenti e il generatore assistito non vedeva alcun dato e restava muta per sempre, senza un errore né una traccia. Ora le regole leggono davvero i dati dell'elemento, i confronti numerici capiscono i numeri arrivati come testo, un campo mai compilato non manda più avanti nessuno, e quando una regola non scatta lo storico dice perché.
-
Miglioramento
Le regole leggono finalmente i dati dell'elemento
Una regola in JavaScript scritta come `data.<campo>` o `item.data.<campo>` — le forme mostrate dall'aiuto, dai suggerimenti del designer e dal generatore assistito — risolveva nel vuoto: valeva sempre falso e l'elemento non si muoveva, senza alcun errore. Ora leggono il contenuto reale dell'elemento, e le regole scritte nell'unica forma che funzionava prima continuano a funzionare: nessuna regola esistente peggiora. Lo stesso valeva per le regole a condizioni, dove la scorciatoia `data.` veniva disattivata dalla presenza di un campo chiamato anch'esso `data` e finiva per cercare dentro quel campo. E il generatore assistito ora insegna il contratto giusto, così il codice che produce funziona alla prima.
-
Miglioramento
Nessuno passa avanti senza averne diritto
Un importo arrivato da un modulo o da un'integrazione è spesso un testo: `"150"` non superava mai `≥ 100` e l'elemento scivolava sul ramo di riserva. Ora entrambi i lati del confronto vengono letti come numeri quando lo sono, spazi inclusi, mentre i confronti di uguaglianza restano stretti. Le condizioni negative erano vere a vuoto: "esito diverso da respinto" approvava da sola elementi su cui nessuno aveva ancora scritto nulla, e ora un campo che non esiste non soddisfa nessuna condizione — tranne quelle che esistono apposta per ragionare sull'assenza. Una regola senza condizioni, che nel designer appare inerte, non scavalca più le altre: bastava una regola lasciata a metà in cima all'ordine per dirottare l'intero flusso.
-
Miglioramento
Lo storico dice perché una regola non è scattata
Prima non si distingueva una condizione falsa da un campo mai compilato o da tipi incompatibili, e il caso "nessuna regola soddisfatta e nessun ramo di riserva" non lasciava alcuna traccia: l'elemento restava fermo e basta. Ora lo storico riporta il dettaglio regola per regola, una volta sola finché la situazione non cambia. Il dettaglio descrive la forma del dato e mai il contenuto — dice "campo non numerico (stringa)", non il valore — perché lo storico è leggibile anche da chi ha il permesso più basso. Anche alla scadenza di una fase gli errori sono ora visibili, dove prima morivano in un registro tecnico, e la nota chiarisce che quella valutazione dispone di meno informazioni rispetto all'ingresso nella fase.
-
Miglioramento
Salvataggi che non perdono pezzi
Una regola che punta a una fase inesistente veniva scartata in silenzio con esito positivo: la regola spariva mentre tutto il resto, rinomine comprese, veniva salvato. Ora il salvataggio si ferma e spiega, senza scrivere nulla a metà — mentre una regola alla quale non hai ancora scelto la destinazione resta lavoro in corso e non blocca nulla. E cancellare una fase ripulisce i riferimenti che la puntavano, comprese le vie d'uscita per scadenza, per limite di lavori in corso e per numero massimo di ripassaggi.
-
Miglioramento
La scadenza di una fase non riparte più
Un'attesa programmata dentro una fase riscriveva la scadenza "da adesso": il tempo misurato non era più quello trascorso dall'ingresso nella fase, e con più attese in sequenza ripartiva ogni volta. Un timeout dichiarato di un minuto poteva scattarne dopo tre. Ora la scadenza la fissa l'ingresso nella fase, qualunque cosa l'elemento stia aspettando.
-
Miglioramento
Un filtro senza risultati non manda più in errore la lista
Filtrando gli elementi per "scaduti" senza corrispondenze compariva un messaggio di parametro non valido: la lista tentava di spostarsi su una pagina inesistente. Valeva per qualsiasi filtro a risultato vuoto.