2026-05-08 20:26:26 +02:00
# 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 ).
2026-05-26 22:21:20 +02:00
## [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<T>` ) for structured responses
- **request.validation:** Automatic validation pipeline behavior with FluentValidation integration
2026-05-28 22:05:56 +02:00
## [1.1.0] - 2026-05-28
2026-05-08 20:26:26 +02:00
### Added
2026-05-28 20:12:00 +02:00
- **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<T>` extension method for simplified validator invocation
2026-05-08 20:26:26 +02:00
### Changed
2026-05-28 20:39:51 +02:00
- **request.dispatcher:** Reset type caches when reloading assemblies
- **request.validation:** Reset type caches when reloading assemblies
2026-05-30 19:53:00 +02:00
## [2.0.0] - 2026-05-30
2026-05-28 22:05:56 +02:00
2026-05-30 19:53:00 +02:00
## Breaking changes
To have a consistent experience across all packages, some public interfaces have been renamed.
2026-05-28 22:05:56 +02:00
### Changed
2026-05-29 22:53:58 +02:00
- **request.dispatcher:** Hide pipeline internals in stack frames
2026-05-29 23:05:24 +02:00
- **request.validation:** Rename `IValidatorBuilder` to `IRequestValidatorBuilder` incl. extensions methods
2026-05-29 22:53:58 +02:00
2026-05-30 19:53:00 +02:00
## [Unreleased]
### Added
2026-05-30 21:17:14 +02:00
- **request.validation:** Support `PropertyPath` JSON converter for string values and dictionary property names
2026-05-30 19:53:00 +02:00
### Changed
2026-07-12 18:35:50 +02:00
- **request.result:** Document that `Result` /`Result<T>` equality treats any two failures as equal, ignoring error content; branch on the `Error` directly for failure-specific logic
2026-07-12 18:28:33 +02:00
### Fixed
- **request.result:** Correct the namespace in the `Prelude` doc comment (`Geekeey.Extensions.Result` → `Geekeey.Request.Result` )
2026-07-12 18:32:16 +02:00
- **request.result:** Fold `IsSuccess` into `Result<T>.GetHashCode` to avoid collisions between a failure and a success value whose hash is `0`
2026-07-12 18:42:07 +02:00
- **request.validation:** Guard null comparison bounds in `GreaterThan` /`LessThan` /`Between` etc. so a `null` bound no longer throws (`NullReferenceException` )
2026-07-12 18:43:37 +02:00
- **request.validation:** Return no problems when validating a `null` instance of a reference type instead of dereferencing it (`NullReferenceException` )
2026-07-12 18:28:33 +02:00
2026-05-08 20:26:26 +02:00
### Removed
2026-05-26 22:21:20 +02:00
[1.0.0]: https://code.geekeey.de/geekeey/request/releases/tag/1.0.0
2026-05-28 22:05:56 +02:00
[1.1.0]: https://code.geekeey.de/geekeey/request/releases/tag/1.1.0
2026-05-30 19:53:00 +02:00
[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