v0.79.4
5 agosto 2026
Il motore diventa a prova di crash. Diciassette interventi coordinati chiudono corse critiche e finestre di crash: eventi che non possono più perdersi, esiti con un solo vincitore, creazioni sempre recuperabili, escalation atomiche. Con un cambiamento dichiarato per le integrazioni n8n.
-
Miglioramento
Nessun evento perso, nessun esito doppio
La registrazione di un evento e il suo dispaccio ora avvengono nella stessa transazione: un crash non lascia più eventi orfani (possono arrivare con qualche secondo di ritardo, mai perdersi). Ogni esito di attività — completamento manuale, callback, timeout, riprova, riapertura — passa da una presa in carico atomica: due attori concorrenti non possono più scrivere esiti opposti o eseguire due volte webhook, chiamate AI o flussi figli; chi arriva secondo riceve una risposta onesta e non lascia alcuna modifica. Le creazioni con chiave di idempotenza si recuperano da sole dopo un crash (prima la chiave restava bloccata per sempre), e un ingresso interrotto viene ripreso automaticamente entro mezz'ora.
-
Sicurezza
Provenienza degli eventi blindata e avvisi che arrivano davvero
Un chiamante esterno non può più far copiare dati da un elemento indicandone l'identificativo nel payload: la copia automatica avviene solo per gli eventi generati internamente dal sistema. E le policy di escalation configurate su ruoli personalizzati — finora mute per un difetto del componente di notifica — ora notificano davvero: chi ne aveva configurate inizierà a ricevere avvisi che prima non arrivavano.
-
Integrazione
Callback n8n con contratto esplicito
La risposta dei workflow n8n verso FlowSharp ora richiede il campo `runId` (basta rimandare il valore `xflow.runId` ricevuto nel payload — senza, errore chiaro con istruzioni). Il campo `taskId` va preso dall'header `X-XFlow-Task-Id`: chi ha copiato i vecchi template deve rigenerare lo snippet dalle impostazioni, che ora genera il codice corretto. Questo chiude definitivamente le callback "stantie" di esecuzioni superate.
-
Miglioramento
Salute operativa sempre onesta
La salute del dispaccio eventi è ora visibile e mai falsamente verde: arretrato, età, tentativi e ultimo errore esposti nell'endpoint di salute del worker, con stato «degraded» che non innesca mai riavvii a catena. Le righe in errore vengono ritentate con attese crescenti senza bloccare le successive, e niente sparisce mai in silenzio: per i casi estremi c'è una procedura di replay documentata.