Releases
v1.0.0
Compare
Sorry, something went wrong.
No results found
Bug Fixes
Correlate RPC on RequestId, envelope replies, enable publisher confirms (4d5ed3a )
Serialize consumer channel writes on partitioned queues (49db951 )
Advance in-memory RetryCount; make consume Headers read-only (ba5467d )
Round-trip queue: URIs through PublishContext address getters (e959ffe )
Hold the outbox relay until the transport declares its subscriber topology so startup publishes are not dropped (d1f2173 )
Hold requests until the bus has started so warmup-time requests are not published before their responder exists (03384c5 )
Release the publish channel-pool slot when discarding a faulted channel throws (77f8eff )
Roll back transactional commands on a failed Result and wire the ITransactionalCommand marker (1ab6b09 )
Resolve BaseController logger via ILoggerFactory instead of a non-registered ILogger (3272708 )
Poll immediately before waiting the first interval (cc18b53 )
Forward the CancellationToken to async validators in the validation behavior (be8f154 )
Key the Sender request-handler cache by response type to avoid a cross-response cast (e013dee )
Preserve headers/trace and fail fast on unresolved types in the broker relay (0efc31f )
Throw a descriptive error instead of NRE when the domain-event relay cannot resolve a type (7df4274 )
Harden integration-test fixtures against scope/teardown races and unbounded host restarts (0c7af81 )
Give a clear startup error when no transport is configured (a0a2586 )
Return a still-open channel after a returned/nacked publish instead of discarding it (5b05429 )
Exit the relay cleanly when stopped during the gate wait (0e8023d )
CI/CD
Trunk-based releases, versioned docs, drop CHANGELOG in favor of GitHub Releases (115d818 )
Mark public API shipped on release and move CI scripts to eng/ (a3e5546 )
Allow Dependabot-authored PRs in Claude review workflow (b800ffb )
Set up NuGet.org trusted publishing and pinned semver releases (5baca04 )
Limit dependabot auto-merge to patch and minor updates (671ecf5 )
Follow the triggering comment in the @claude workflow (7007b6d )
Add CodeQL buildless analysis workflow (001085d )
Documentation
Remove placeholder XML doc boilerplate across src, tests, and samples (e35450e )
Document writing a custom transport (0694f89 )
Restructure root README and add contributing, issue, and PR templates (bab03e7 )
Forbid Co-Authored-By trailers in commit guidelines (55c17d4 )
Describe behavior timelessly instead of as changes (fbcdedc )
List all 24 packages in the README (931fd75 )
Document the validation behavior's Result-vs-ValidationException failure contract (312c212 )
Correct exactly-once overclaim and document transport-delegated poison handling (577e29e )
Note retry head-of-line caveat, concurrency math, and connection recovery (4dcdf37 )
Update article prose for the renamed public API members (20cc281 )
Features
Harden RabbitMQ transport and add config-driven setup (fc554fe )
Add IConsumeFilter pipeline for consumer cross-cutting concerns (ab8eaba )
Add LoggingConsumeFilter as default opt-out filter (fa8ff73 )
Add point-to-point ISendEndpoint with ctx.SendAsync (000a641 )
Wrap publishes in MessageEnvelope and key dispatch by URN (98dcc1d )
Support per-request timeout via IRequestContext (eae2c14 )
Per-aggregate ordering via UsePartitioner (a81ec69 )
Add in-memory retry mode preserving per-key order on failure (dc24d8b )
Single active consumer for cross-instance ordering (bc0f1d5 )
Add CorrelationId-keyed UsePartitioner overloads (e47519a )
Make QueueDefinition consumer/subscription registration public (e29995a )
Bounded publish channel pool with RabbitMq transport options (c7b539b )
Publish Fault to the fault exchange by convention on consume failure (12bf5a6 )
Add in-memory ITestHarness transport on the public Transport SDK (6217b3d )
Add idempotent inbox consume filter with relational EF Core store (1f5ed31 )
Extract EF Core inbox base package and add Cosmos idempotency store (0fd4a3f )
Add per-container ConfigureWebHost/ConfigureServices extension points (3e300f4 )
Run inbox/outbox/command transactions in the EF execution strategy instead of disabling retries (4fe49df )
Add publish/send filter pipeline with a scoped filtering publisher over the transport terminal (b630729 )
Add transactional bus-publish outbox on a unified pluggable-sink outbox engine with a commit-time relay trigger (7dd9359 )
Add AddTransactionalConsumer and gate transactional capture on ISaveOutboxMessages.IsInTransaction (c902c2b )
Share containers across the assembly via a ContainerHost with per-class scopes built into the fixture bases (3ae39d6 )
Add Vulthil.xUnit.Cosmos emulator fixture with a database per test class (8c57c94 )
Signal the relay after a non-transactional save captures domain events, with interceptor tests (fcf0261 )
Add IRestartableHostedService so the test harness can pause the outbox relay around the per-test reset (686fd3c )
Dead-letter exhausted messages, deterministic ordering, and isolated parallel publishing (463dfe6 )
Register the MySQL DbContext (Aspire on net9, Microting on net10) and add a configureDbContextOptions passthrough across the EF Core providers (18ec46f )
Compare entities by identity via Equals and GetHashCode (06c64dc )
Give ValidationError value-based equality and a non-empty invariant, and add an Error.Validation factory (e417774 )
Add Ensure, GetValueOrDefault, TapError, MapError, Recover, Or/OrElse, Combine, and Zip combinators with async overloads (c833e25 )
Produce RFC 7807 ProblemDetails for handled failures, uncaught exceptions, and the OpenAPI document (f621d6c )
Rename the relay ActivitySource to its package and auto-register it when tracing is enabled (78c9171 )
Add opt-in outbox and inbox retention sweeps (relational + Cosmos) (3e71fa8 )
Model consumer retry, Fault emission, and request timeout (b48bc23 )
Add outbox relay and inbox guard metrics (782a5b8 )
Resolve test DbContexts from DI and add IStartupResource hook (c81ab27 )
Miscellaneous
Group src and tests projects into solution folders (98d6562 )
Remove unused code identified during review (b80bd21 )
Drop unused package refs and relocate Options.DataAnnotations to the outbox package (78de776 )
Regenerate WebApi migrations into a coherent three-step history (267eb34 )
Refactoring
Add nuget image (741a2ec )
Decorate handlers directly instead of relying on ISender (93fa154 )
Merge options/provider behind dual interfaces and gate default filters at registration (139c82b )
Collapse consumer invokers into MessageHandler + typed factory (4112353 )
Consolidate routing-key config; nullable Subscribe (faeacb4 )
Internalize configurator impls; align UseRetry nullability (5b6cdd0 )
Typed Fault.OriginalContext snapshot; drop Null* contexts (6aa0997 )
Promote envelope, pipeline factory, handler kind, rpc fault to public primitives (f37bfc9 )
Extract generic MessageExecutionRegistry; RabbitMq consumes it (dc4197c )
Make IPublishContext write-only via Set methods; SetTimeout returns void (b028d03 )
Make publish context and envelope factory public (e988532 )
Add public envelope-based message context builder (3a7f484 )
Build RabbitMq test providers via public AddMessaging and drop the IVT (eb9ee37 )
Extract the engine into the Vulthil.SharedKernel.Outbox package and namespace, off the infrastructure package (2d26ff3 )
Make the engine persistence-agnostic via IOutboxStore and isolate EF in Vulthil.SharedKernel.Outbox.EntityFrameworkCore (16eb5f4 )
Move method-body rationale into XML docs and drop non-AAA comments (ac6f855 )
Deduplicate open-generic pipeline-handler validation (b6ccc0b )
Make AggregateRoot.Raise protected so events are raised only from within the aggregate (06cb563 )
Apply outbox/inbox EF mappings via internal provider configs exposed as ModelBuilder extensions (daae146 )
Fold opt-in sweeps into outbox/inbox setup options (39d54b5 )
Drop redundant GetMessageConfiguration overload and honor nullable CorrelationId (2556368 )
Tidy the public API surface ahead of the 1.0 freeze (66a07c9 )
Apply pre-1.0 API audit follow-ups (a7c8d78 )
Testing
Expand integration scenarios and add failure-config + timeout tests (ae5f51d )
Cover transport primitives in core test project (d165661 )
Add BaseUnitTestCase teardown hook; adopt Target and ctor mock-field patterns across tests (ee26cb4 )
Drive consume-filter and polymorphic dispatch tests through AutoMocker (45451ae )
Add Fault and MessageContextSnapshot tests for Abstractions (2bec04b )
Pin integration test HttpClients to the http endpoint to avoid CI dev-cert TLS failures (6aa36b3 )
Add Cosmos emulator test container wired through a WebApplicationFactory (97e14de )
Move library-level integration tests out of the WebApi sample onto a dedicated Vulthil.TestHost composition root (1d32723 )
WIP
Build
Centralize SDK version in global.json and bump Aspire to 13.4.2 (51506b1 )
Bump .NET, analyzer, Aspire, and OpenTelemetry versions and declare record members in PublicAPI (00c0578 )
Pin MessagePack above GHSA-hv8m-jj95-wg3x in the messaging integration tests (5ec948b )
Bump github/codeql-action from 3 to 4 in the dotnet group (668f239 )
Suppress the intentional per-TFM UseMySql APICompat difference for the MySQL package (5655df0 )
Suppress NU1903 for the transitive SQLitePCLRaw advisory (GHSA-2m69-gcr7-jv3q ) (d6882b7 )
Suppress NU1903 for the transitive SQLitePCLRaw advisory (GHSA-2m69-gcr7-jv3q ) (49ff65d )
Bump actions/checkout (b89446a )
You can’t perform that action at this time.