Release v20.61.1
Fixed
- A validation rule comparing against a non-numeric value — most often a
RuleFor(x => x.When).GreaterThan(DateOnly.MinValue)"must be set" sentinel — generated a client validator that did not parse (greaterThan(01/01/0001), an invalid TypeScript literal). The client-side comparison validators (greaterThan,lessThan, …) operate on numbers, so such a comparison is now skipped at extraction — the server still enforces it, there is simply no client rule to project. As a backstop, any non-numeric argument that still reaches the formatter is quoted, so no unparseable literal can be emitted.
This was latent until validator rules actually reached the generated proxies (#2363): before that, no FluentValidation rule was extracted at all, so the comparison path never ran. Verified end to end against a real application's regenerated proxies — the date-sentinel rules are dropped and the numeric comparisons (greaterThan(0), greaterThanOrEqualTo(18)) are unchanged. Proven to have teeth by reverting the extraction guard and watching the new spec fail. Full suite green: 3,964 passed, 0 failed.
🤖 Generated with Claude Code