# Changelog All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [1.0.0] - 2026-05-26 ### Added - **request.dispatcher:** Core mediator pattern implementation with async request/response handling - **request.result:** Optional result wrapper types (`Result`) for structured responses - **request.validation:** Automatic validation pipeline behavior with FluentValidation integration ## [1.1.0] - 2026-05-28 ### Added - **request.validation:** Dependency injection support for validators via `IServiceCollection.AddValidation()` - **request.validation:** `IValidatorBuilder` for fluent validator registration and assembly scanning - **request.validation:** Support for open generic validators and automatic closing during resolution - **request.validation:** `Validate` extension method for simplified validator invocation ### Changed - **request.dispatcher:** Reset type caches when reloading assemblies - **request.validation:** Reset type caches when reloading assemblies ## [2.0.0] - 2026-05-30 ## Breaking changes To have a consistent experience across all packages, some public interfaces have been renamed. ### Changed - **request.dispatcher:** Hide pipeline internals in stack frames - **request.validation:** Rename `IValidatorBuilder` to `IRequestValidatorBuilder` incl. extensions methods ## [Unreleased] ### Added - **request.validation:** Support `PropertyPath` JSON converter for string values and dictionary property names ### Changed - **request.result:** Document that `Result`/`Result` equality treats any two failures as equal, ignoring error content; branch on the `Error` directly for failure-specific logic ### Fixed - **request.result:** Correct the namespace in the `Prelude` doc comment (`Geekeey.Extensions.Result` → `Geekeey.Request.Result`) - **request.result:** Fold `IsSuccess` into `Result.GetHashCode` to avoid collisions between a failure and a success value whose hash is `0` - **request.validation:** Guard null comparison bounds in `GreaterThan`/`LessThan`/`Between` etc. so a `null` bound no longer throws (`NullReferenceException`) ### Removed [1.0.0]: https://code.geekeey.de/geekeey/request/releases/tag/1.0.0 [1.1.0]: https://code.geekeey.de/geekeey/request/releases/tag/1.1.0 [2.0.0]: https://code.geekeey.de/geekeey/request/releases/tag/2.0.0 [Unreleased]: https://code.geekeey.de/geekeey/request/compare/2.0.0...HEAD