v0.79.1
4 agosto 2026
Nove decisioni chiuse, nessuna zona grigia. I comportamenti ambigui accumulati nelle ultime settimane — chi riceve un evento, cosa sa uno script del flusso figlio creato, quando un elemento è davvero concluso, come si ordinano le viste a parità di priorità — sono stati decisi uno per uno e implementati insieme.
-
Miglioramento
Eventi con il destinatario giusto
Un'iscrizione senza riferimento entità ora riceve solo eventi senza destinatario: prima «nessun filtro» significava «tutto», e un evento indirizzato a un'entità specifica poteva far scattare l'elemento sbagliato. Il callback delle integrazioni asincrone emette gli eventi di dominio come ogni altro canale, così avvisi e flussi in ascolto scattano anche sugli esiti riportati da n8n — e un callback che riporta un errore senza esito esplicito ora conta come fallito, attraversando il ramo di ripiego previsto per i fallimenti. Il payload verso i sistemi esterni porta un codice e l'etichetta dell'attività, mai il messaggio d'errore: chi leggeva il campo `error` deve passare a `errorCode`.
-
Miglioramento
Script, flussi figli e conclusioni oneste
`spawnItem()` restituisce l'esito allo script — `{ ok, itemId }` quando il figlio è partito, un codice quando l'ingresso non è riuscito: prima non c'era modo di saperlo. La transizione «diretta» degli eventi (forma legacy) entra nel percorso comune: gate, attività d'ingresso e iscrizioni partono anche lì. Un elemento su una fase finale in attesa dei dati richiesti resta aperto finché i dati non arrivano, e si chiude da solo alla consegna — prima risultava concluso coi dati mancanti. A parità di priorità le viste seguono l'ordine di arrivo, come la coda dei lavori in corso. E l'aiuto della durata di attesa dice la verità: un numero senza unità vale in secondi, col designer che suggerisce l'unità esplicita.