Commit graph request/CHANGELOG.md
Author SHA1 Message Date
595ba01ea6
fix(dispatcher): resolve handlers in registration order across closed and open generics
Handler/behavior resolution previously forced closed generics before open
generics regardless of registration order, which was surprising and fragile.
TypeIndex now tracks each registered type's index and orders matching
candidates by registration order, so closed/open ordering is deterministic
and follows registration.
2026-07-12 21:25:21 +02:00
f79e8780f7
fix(dispatcher): throw on ambiguous handlers instead of silent .First()
Multiple handlers for the same request were previously resolved via .First(),
with ordering depending on Type.GetInterfaces() order (non-deterministic).
Now ScalarRequestInvoker/StreamRequestInvoker throw InvalidOperationException
listing the candidate handlers when more than one matches.
2026-07-12 21:25:21 +02:00
f7263c33a8
fix(validation): make Severity meaningful in Validation.IsValid
Validation.IsValid previously counted every problem regardless of severity,
leaving Severity inert. Now IsValid only fails on Error problems, so Warning
and Info no longer invalidate the result, and IsValidFor(Severity) lets
callers set the failing-severity threshold.
2026-07-12 21:25:21 +02:00
552f88df18
fix(validation): return no problems for null reference instance in Rule.Validate
Rule<T,TProperty>.Validate cast a null instance to T and validated it, so a
reference T whose accessor dereferences the instance threw
NullReferenceException on a direct validator.Validate(context) with a null
instance. Guard the null-instance path and return no problems instead.
2026-07-12 21:25:21 +02:00
68194d3cb3
fix(validation): guard null comparison bounds in comparison builders
Passing a null bound to GreaterThan/LessThan/Between etc. called
value.CompareTo(null), throwing NullReferenceException for non-null
reference-type values. Short-circuit when the bound is null so the rule is
satisfied instead of crashing.
2026-07-12 21:25:21 +02:00
ab9407085d
docs(result): document that failure equality ignores error content
Result/Result<T> equality treats any two failures as equal regardless of their
Error, which was undocumented and surprising for failure-specific branching.
2026-07-12 21:25:21 +02:00
fbbe94bfa8
fix(result): Result<T> hash collision
A success result wrapping a value whose GetHashCode is 0 (e.g. Result<int>
with 0) collides with a failure result, both hashing to 0.
2026-07-12 21:25:21 +02:00
06a40184ee
fix(result): correct wrong namespace in Prelude doc comment
The doc comment referenced `Geekeey.Extensions.Result.Prelude` but the actual
namespace is `Geekeey.Request.Result`, so the suggested using directive would
not compile.
2026-07-12 18:33:32 +02:00
eff887b49f
feat: add json property path supports for object keys
All checks were successful
default / dotnet-default-workflow (pull_request) Successful in 2m4s
default / dotnet-default-workflow (push) Successful in 3m25s
2026-05-30 21:17:14 +02:00
a0d69fde41
feat: release 2.0.0
All checks were successful
release / dotnet-release-workflow (push) Successful in 3m7s
2026-05-30 19:55:03 +02:00
36f1a9eb1b
feat: rename validation builder for parity
All checks were successful
default / dotnet-default-workflow (pull_request) Successful in 1m58s
default / dotnet-default-workflow (push) Successful in 1m56s
Rename extensions functions and `IValidatorBuilder` for parity with
dispatcher options and builder.
2026-05-29 23:13:06 +02:00
4d33d5ab4c
feat: hide pipelines internals from stack trace
All checks were successful
default / dotnet-default-workflow (pull_request) Successful in 2m4s
default / dotnet-default-workflow (push) Successful in 1m59s
2026-05-29 23:10:01 +02:00
cc2a643f63
feat: release 1.1.0
All checks were successful
release / dotnet-release-workflow (push) Successful in 2m8s
2026-05-28 22:07:54 +02:00
21b6f04f8c
fix: type cache reset when metadata updates occure
All checks were successful
default / dotnet-default-workflow (pull_request) Successful in 3m28s
default / dotnet-default-workflow (push) Successful in 2m10s
2026-05-28 20:39:51 +02:00
22142882b5
feat: add support for validator resolution from dependency injection 2026-05-28 20:12:00 +02:00
85d69ef744
feat: release 1.0.0
All checks were successful
release / dotnet-release-workflow (push) Successful in 3m2s
2026-05-26 22:25:16 +02:00
d614788e06
feat: create request projects for basic CQRS 2026-05-26 22:24:40 +02:00