v0.86.12
September 6, 2026
**Integrity and protections:** confidentiality no longer gets lost on save, credentials survive edits, events never copy restricted data, and every invalid configuration gets a clear no instead of a silent fallback.
-
Security
Confidentiality survives the save
Declaring a field and marking it confidential in the same request is now a single operation: the classification can no longer be dropped along the way, neither on save nor on import. On error, no half-applied state remains.
-
Security
Events never copy restricted data
An Event task whose payload references a confidential field now stops with a clear error — writing nothing — instead of copying the value into the event log, where users without flow access could read it. To fix: remove the reference from the template or declassify the field.
-
Security
Credentials survive header edits
Editing a connector's headers can no longer destroy saved credentials: each key explicitly declares whether to keep, replace or remove its value, and the on-screen mask is never written in place of the secret. An unreadable header store is reported instead of being silently reset.
-
Improvement
Document deletion tells the truth
Deleting a document whose reference was already removed from the item now actually completes the operation (it previously declared success while doing nothing), and repeating the deletion gives an honest answer about the real state. Under the hood, two rare mutual blocks between concurrent operations were eliminated with a single documented ordering.
-
Improvement
Document configurations without silent fallbacks
A Document field configuration with wrong values (file types, max count, sizes) is now rejected with a precise pointer to the field to fix — it was previously silently converted to the most permissive defaults, losing the intended restrictions.
-
Improvement
Connector timeouts and methods under contract
Connector timeouts (5-1800 seconds, integers) and HTTP methods are now validated everywhere: create, edit, test and n8n import. A connector with out-of-contract values no longer makes calls with parameters different from what is shown: the error tells you exactly what to fix.