Release Notes
Unreleased — collection and literal validation
- Fixed empty Default Output Entries under n8n's missing-parameter behavior. Manual tables without defaults, JSON embedded defaults, and XML tables without configured defaults now evaluate matching and nonmatching items correctly. Collection objects are read with defined fallbacks.
- Malformed collection containers, unexpected collection options, non-object rows and nonstring text fields now fail with collection/row context instead of silently dropping entries, widening a rule to a wildcard, or throwing an unhelpful TypeError. Correct the affected n8n collection to its documented wrapper and row shape; optional empty collections remain valid.
- Comparison operands, both range bounds and constructor arguments now enforce the supported literal grammar. Expressions such as
!= foo(bar),not(> foo(bar)),[1..foo(bar)],date(foo(bar)),time(["09:00"])anddate("2026", 1, 1)are rejected when evaluated, including inside lists and negation. Previously some of these could silently miss or select a rule. Quote function-like text when it is intended as data, for example"foo(bar)". - Date/time constructors remain wrappers around one supported quoted or bare scalar literal; this includes
date(2026-01-01). Nested constructors, multiple arguments and computations are unsupported. Syntactically valid but incomparable operands still produce ordinary nonmatches for ordered comparisons/ranges. Existing equality coercion, inequality andnot()behavior are preserved. - Range splitting now respects quoted
..text, escaped quotes/backslashes and constructor wrappers in either bound. For input7,["a..b"..10]returnsfalseandnot([1.."a..b"])returnstrueinstead of throwing. Empty bounds, extra unquoted range delimiters and malformed literals still reject; quoted delimiter text in a list remains literal data. - Expression errors now include the one-based rule number and input name. Continue On Fail still emits a paired error item and proceeds after per-item errors; malformed shared table definitions still fail before item evaluation.
Serialized node/property identifiers and successful output shapes are unchanged. Default precedence and source-switch fallback behavior are preserved. FIRST still short-circuits later rules, and output literals are parsed only for matching rules; this change does not eagerly validate later expressions or add full FEEL support.