Skip to content

Bump WolverineFx from 5.24.0 to 6.4.1#713

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/nuget/src/DataFacade/WolverineFx-6.4.1
Open

Bump WolverineFx from 5.24.0 to 6.4.1#713
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/nuget/src/DataFacade/WolverineFx-6.4.1

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot Bot commented on behalf of github Jun 3, 2026

Updated WolverineFx from 5.24.0 to 6.4.1.

Release notes

Sourced from WolverineFx's releases.

6.4.1

Just hardening Wolverine against a condition that only happens (we think) in CritterWatch

What's Changed

Full Changelog: JasperFx/wolverine@V6.4.0...V6.4.1

6.4.0

This release was 100% about CritterWatch and does not impact any other functionality

What's Changed

Full Changelog: JasperFx/wolverine@V6.3.2...V6.4.0

6.3.2

What's Changed

Full Changelog: JasperFx/wolverine@V6.3.0...V6.3.2

6.3.0

The top line change here was a lot of work to make Wolverine able to pre-generate code as F# in addition to the existing C# model.

What's Changed

Full Changelog: JasperFx/wolverine@V6.2.2...V6.3.0

6.2.2

Patch release on top of 6.2.1.

🐛 Bug Fixes / Codegen

#​2963 (closes #​2958): EF Core transaction middleware + post-save cascade flush

The HTTP-handler codegen path under the EF Core transaction middleware + outbox cascade (GH-536) no longer fails handler compilation. Two related codegen issues addressed in this PR:

  • CS0128 duplicate var messageContext declaration in the generated handler. Cherry-picked from #​2959, originally authored by @​kentcooper — credit preserved on commit 9df45bfde. Root cause: MessageBusSource was returning a fresh CreateMessageContextWithMaybeTenantFrame per call; once cached + always returning the concrete MessageContext, the duplicate goes away.
  • CS1061 'IMessageContext' does not contain a definition for EnqueueCascadingAsync — surfaced after the cache fix because once the source produced a concrete MessageContext Variable, the downstream CaptureCascadingMessages frame still declared its MethodCall target as typeof(IMessageContext) and emitted a bad ((IMessageContext)messageContext).EnqueueCascadingAsync(…) cast. Fixed by re-targeting CaptureCascadingMessages to the concrete MessageContext type — mirrors the existing FlushOutgoingMessages pattern. Latent in src/Wolverine/Runtime/Handlers/CaptureCascadingMessages.cs since 020e79013e (2022-09-16); the variable-cache fix is what flipped it from masked to visible.

📦 Dependency bumps

  • JasperFx + JasperFx.Events + JasperFx.Events.SourceGenerator + JasperFx.SourceGenerator 2.2.1 → 2.2.3
  • JasperFx.RuntimeCompiler unchanged (own 5.x line, stays at 5.0.0)
  • Marten / Polecat unchanged (9.2.0 / 4.2.1)

Upstream JasperFx 2.2.2 release: https://github.com/JasperFx/jasperfx/releases/tag/V2.2.2 (Fix source-created codegen variable reuse, #​392). 2.2.3 was a same-day version-bump-only re-roll.

📖 Documentation

  • #​2960 (@​outofrange-consulting): clarify the JasperFx command-line integration link in the diagnostics docs.
  • #​2964 (closes #​2962): re-align the dead-letter REST API reference with the current DeadLetterEnvelopeGetRequest / DeadLetterEnvelopeResults / DeadLetterEnvelopeIdsRequest signatures — the docs still described the pre-5 cursor-based pagination (StartId/NextId) and the legacy DeadLetterEnvelopesFoundResponse wrapper. Updated for offset-based PageNumber pagination, the multi-store IReadOnlyList<DeadLetterEnvelopeResults> response shape, and tenant-aware Ids request bodies.

🧪 Known issues

  • #​2965: SharedMemory transport does not serialize envelopes on cross-host send. Surfaces as a MartenTests.Distribution.with_ancillary_stores.spread_out_over_multiple_hosts failure where AssignAgent system commands arrive at the destination node with empty Data/MessageType and the receive pipeline can't deserialize them. Long-standing — the marten CI workflow has been red on this test through V6.2.0 and V6.2.1, predates this release line entirely. Unblocked the V6.2.2 cycle by adding [Fact(Skip = "…")] referencing #​2965; the underlying serialization bug is tracked separately and is out of scope for a JasperFx pin-bump patch release.

Full changelog: JasperFx/wolverine@V6.2.1...V6.2.2

6.2.1

Patch release picking up upstream JasperFx 2.2.1 fixes. No Wolverine code changes — pure dependency bump.

Bumped pins

Package From To
JasperFx 2.2.0 2.2.1
JasperFx.Events 2.2.0 2.2.1
JasperFx.Events.SourceGenerator 2.2.0 2.2.1
JasperFx.SourceGenerator 2.2.0 2.2.1

Unchanged

Package Version Reason
JasperFx.RuntimeCompiler 5.0.0 Own 5.x line — the Roslyn runtime-compiler package was decoupled from the JasperFx 2.x family in #​2876.
Marten family 9.2.0 Latest.
Polecat 4.2.1 Latest (bumped in 6.2.0 via #​2947).

Related links

6.2.0

Bug-fix + feature release on top of 6.1.0 — 13 PRs.

✨ New features

Custom Result<T> Support — #​2952 (refs #​2221)

First three phases of native Result<T>-style handler return-value support: ResultPolicy registry, handler-side unwrapping seams, and caller-side InvokeAsync<T> unwrap. Lays the groundwork for integrating with libraries like ErrorOr, OneOf, FluentResults, etc.

DbContext Abstractions for EF Core Transaction Middleware — #​2919, #​2954

The EF Core transaction middleware now binds correctly when handler parameters are declared as interface or abstract base abstractions over a concrete DbContext. Multiple abstractions to the same DbContext are supported in a single handler — the runtime resolves them all to the same scoped instance, and the transaction still auto-applies.

📖 DbContext Abstractions docs

🚀 Performance

Outgoing Envelope Pooling — #​2956 (closes #​2955)

MessageRouter.RouteForPublish now acquires from the runtime envelope pool (originally introduced in #​2741 for the Executor sites in 6.1.0) when the route's sender is an InlineSendingAgent or BufferedSendingAgent. Measured −504 B/op (−90 %) on the transport-bound publish/send paths in the CritterStackScalability harness, with ~10× fewer Gen0 collections per 1k ops. DurableSendingAgent, local-queue agents, and ISenderRequiresCallback senders are explicitly excluded — different lifecycle plumbing required, tracked as follow-ups.

🐛 Bug fixes

Marten / Polecat

  • #​2943 Fix scheduled-cascade loss from [ReadAggregate] / [DocumentExists] handlers (closes #​2941).
  • #​2948 Pre-populate chain.AncillaryStoreType in Phase A so the inbox-routing map sees [MartenStore] (closes #​2944).
  • #​2947 Bump Polecat 4.1.1 → 4.2.1 and unskip the three Polecat scheduled-cascade tests.

Persistence (Postgres / MySQL)

  • #​2945 Route PostgresqlQueue identifiers through Weasel's PostgresqlIdentifier.Shorten() so long queue names don't overflow Postgres's 63-byte identifier limit (closes #​2942).
  • #​2946 Emit PersistNodeRecord SQL with unquoted schema (MySQL, closes #​2940).

Pulsar

  • #​2950 Fix KeyNotFoundException acking batch messages on partitioned topics (supersedes #​2883).

Distributed agents

  • #​2951 Bump remote-node agent InvokeAsync<T> reply timeout 10 s → 30 s (closes #​2949).

Quality

  • #​2894 Dispose more resources (@​dmytro-pryvedeniuk).

📖 Documentation

  • #​2953 AOT callout for FluentValidation in the HTTP validation guide (addresses #​2910). 📖 HTTP validation docs
  • #​2954 Extended docs + scenario tests for the new EF Core DbContext abstractions (above).

📦 Dependency bumps

  • Polecat 4.1.1 → 4.2.1 (#​2947).

Full changelog: JasperFx/wolverine@V6.1.0...V6.2.0
... (truncated)

6.1.0

Wolverine 6.1.0

Minor release. Critter Stack dependency refresh, plus the rollup of the entire post-6.0.0 6.0.x line — most significantly the AOT runtime-scanning-elimination work and a new command-line handler-discovery diagnostic.

ℹ️ There was no standalone 6.0.1 tag/GitHub release (it shipped as a NuGet version only), so the changelog below covers every PR merged since 6.0.0 — which includes everything released as 6.0.1 through 6.0.3.

Dependencies

  • Marten / Marten.AspNetCore / Marten.Newtonsoft: 9.0.19.2.0
  • JasperFx.* (non-RuntimeCompiler): 2.1.32.2.0 (#​2938)
  • Polecat: 4.1.1 (unchanged — already latest)
  • JasperFx.RuntimeCompiler: 5.0.0 (unchanged — own 5.x line)

Marten 9.2.0 now bundles JasperFx.Events.SourceGenerator as an analyzer, so projects referencing Wolverine.Marten receive it transitively. The previously-explicit analyzer references were dropped from the 8 Marten-referencing projects to avoid running the generator twice, which produced duplicate Evolve/*Evolver build errors (#​2939). PolecatTests retains its explicit reference because Polecat does not bundle the generator.

New & Noteworthy

AOT: eliminate runtime assembly scanningAOT Publishing. Static-mode apps no longer scan assemblies at startup; discovery now flows through source-generated manifests:

  • Handlers + message types — #​2906 / #​2928
  • HTTP endpoints — #​2925 / #​2929
  • gRPC services (incl. the direct-mapped mode) — #​2926 / #​2930 / #​2934
  • [WolverineHandlerModule] assemblies, with no filesystem probe — #​2905 / #​2935
  • Extension discovery manifest — #​2902 / #​2918
  • Remaining ad-hoc discovery scans routed through JasperFx TypeQuery — #​2909 / #​2932
  • Generated HTTP/gRPC types attached by full name instead of a GetTypes() scan — #​2908 / #​2936

Command-line handler-discovery diagnosticCommand Line Integration · Command Line Diagnostics tutorial. New dotnet run -- wolverine-diagnostics describe-handlers <Type> runs DescribeHandlerMatch from the CLI so you can troubleshoot handler discovery without editing your bootstrapping code — #​2921 / #​2923

Build-time OpenAPI generationCommand Line Integration. dotnet run -- openapi generates the OpenAPI document without starting the host (no database/broker required) — #​2903 / #​2911

SQS fair queues on standard queues — support MessageGroupId on standard Amazon SQS queues — #​2886 / #​2889

SignalR ClaimsPrincipal — the connection's ClaimsPrincipal is now exposed on SignalREnvelope — #​2927 / #​2937

EF Core transactional outbox timing fix — the EF Core transaction and outbox flush now complete before the HTTP response is written — #​2917 / #​2920

Mixed-lifetime IEnumerable<T> support; Lamar removed — handlers depending on a mixed singleton/scoped IEnumerable<T> now resolve every element correctly; Lamar is no longer used or supported, and the built-in ServiceProvider is the container — #​2896 / #​2914

Aggregate handler naming clarity — clarified and guarded the *AggregateHandler naming convention vs. [ReadAggregate] — #​2924

Production code-generation guidanceCode Generation. How to drop Roslyn from production images, with a linked CqrsMinimalApi sample — #​2900 / #​2912

Bug fixes

  • Ancillary store outbox schema for projection side effects — #​2887 / #​2888
  • NRE from null-Sender routes built during description mode — #​2897 / #​2899

What's Changed

6.0.0

Wolverine 6.0.0 — Critter Stack 2026

The messaging/orchestration release completing the Critter Stack 2026 wave, on the final foundation (JasperFx 2.0 / Weasel 9.0 / Marten 9.0 / Polecat 4.0).

Highlights

  • Foundation (final): JasperFx 2.0.0 / JasperFx.RuntimeCompiler 5.0.0 / Marten 9.0.0 / Polecat 4.0.0 / Weasel 9.0.0. Targets net9.0;net10.0.
  • Runtime codegen decoupled from core (BREAKING): WolverineFx no longer ships Roslyn. Apps in the default TypeLoadMode.Dynamic must add WolverineFx.RuntimeCompilation, or pre-generate via codegen write + TypeLoadMode.Static (the trimmer then drops Roslyn). See the migration guide.
  • ServiceLocationPolicy.NotAllowed is the default (BREAKING) — restructure registrations, allow-list per type, or call opts.RestoreV5Defaults() to revert.
  • AOT-clean (pillar #​213): every packaged library carries IsAotCompatible=true (except the intentional WolverineFx.RuntimeCompilation); Static-mode publish drops Roslyn.
  • Cold-start (pillar #​212): Tier-1 pre-generated static handler registry skips handler-discovery scanning in Static mode.
  • Newtonsoft extracted to WolverineFx.Newtonsoft / WolverineFx.Http.Newtonsoft; IForwardsTo<T> discovery now explicit; removed [Obsolete] APIs (EventForwardingToWolverine, RedisTransport.BuildRedisStreamUri, PulsarEndpoint.UriFor).

Migration guide: https://wolverinefx.net/guide/migration.html (or docs/guide/migration.md). Master plan: wolverine#​2715. Remaining release-cut comms items tracked in #​2745.

5.39.1

Fixed a regression problem reported here JasperFx/wolverine#2739

Full Changelog: JasperFx/wolverine@V5.39.0...V5.39.1

5.39.0

What's Changed

New Contributors

Full Changelog: JasperFx/wolverine@V5.38.0...V5.39.0

5.38.0

What's Changed

Full Changelog: JasperFx/wolverine@V5.37.2...V5.38.0

5.37.2

What's Changed

Full Changelog: JasperFx/wolverine@V5.37.0...V5.37.2

5.37.0

What's Changed

Full Changelog: JasperFx/wolverine@v5.36.1...V5.37.0

5.36.1

Upgrade to this version please if you use the EF Core transactional middleware and are using a very recent version of Wolverine

What's Changed

Full Changelog: JasperFx/wolverine@V5.36.0...v5.36.1

5.36.0

What's Changed

Full Changelog: JasperFx/wolverine@V5.35.2...V5.36.0

5.35.2

What's Changed

A small bug-fix and dependency-refresh release.

Persistence fixes

  • Oracle: timestamp default expressions now survive non-UTC DB sessions (#​2634) — OracleMessageStore.Initialize and the surrounding schema declared timestamp columns (health_check, started, posted, etc.) with a DEFAULT of SYS_EXTRACT_UTC(SYSTIMESTAMP). That returns a TIMESTAMP without a time zone, and when implicitly cast into the TIMESTAMP WITH TIME ZONE column Oracle stamps it with the session time zone — so for any session in UTC+N the just-persisted value's UTC equivalent was N hours in the past. That tripped the NodeAgentController.DoHealthChecksAsync staleness filter and surfaced as a NullReferenceException during the first leadership-election heartbeat (self!.AssignAgents([LeaderUri]) on a null self). All 18 occurrences swapped to SYSTIMESTAMP AT TIME ZONE 'UTC', with quote-doubling for the DDL contexts that go through Weasel's EXECUTE IMMEDIATE '...' wrapper.

Reliability hardening

  • Lock dbcontrol:// and oraclecontrol:// endpoints to BufferedInMemory (#​2637) — the database-backed control transport carries inter-node leader-election and agent-reassignment commands. Marking either endpoint Durable would route every control envelope through the same store-backed inbox/outbox the durability agent itself owns (deadlock); marking it Inline contradicts the batched-poll semantics. Both DatabaseControlEndpoint and OracleControlEndpoint now override supportsMode so any policy that tries to flip them off BufferedInMemory either silently skips (UseDurableInboxOnAllListeners, UseDurableOutboxOnAllSendingEndpoints, etc., already check SupportsMode) or fails fast with a clear InvalidOperationException.

Source-gen / startup

  • Aggregate IWolverineTypeLoader across all known assemblies (#​2632) by @​devployment — since 5.34.0, hosts on the source-generated codegen path silently dropped handlers that lived in referenced assemblies because tryDiscoverTypeLoaderFromAttribute only inspected Options.ApplicationAssembly. First invocation of one of those handlers threw IndeterminateRoutesException. The runtime now walks ApplicationAssembly and every assembly in Discovery.Assemblies, collects every [WolverineTypeManifest] loader it finds, and exposes their union via the new internal CompositeWolverineTypeLoader. Existing single-loader semantics are preserved when only one manifest is found.

Other

  • Saga timeout flag + scheduled-dispatch Activity tag (#​2631) by @​jeremydmiller — surfaces saga timeout and scheduled-dispatch metadata so the upcoming CritterWatch saga visualization can render in-flight saga state.

Dependencies

  • Bump JasperFx 1.28.0 → 1.28.2 and JasperFx.Events 1.29.0 → 1.31.1 (#​2638).

Full Changelog: JasperFx/wolverine@V5.35.1...V5.35.2

5.35.1

What's Changed

A bug-fix and small-feature release covering Oracle-in-Balanced-mode startup, a duplicate-poller defect on RavenDb, an AWS SQS sharded-slot naming fix, and a new SagaDescriptor surface for CritterWatch.

Persistence fixes

  • Oracle in DurabilityMode.Balanced now boots (#​2622) — OracleMessageStore.Initialize was a no-op, so hosts using Oracle persistence in Balanced mode failed to start with ArgumentOutOfRangeException("ControlEndpoint cannot be null for this usage"). The fix mirrors MessageDatabase.Initialize for Oracle and stands up a parallel OracleControlTransport / OracleControlEndpoint / OracleControlSender / OracleControlListener set under the new oraclecontrol:// protocol — necessary because the shared DatabaseControlSender / DatabaseControlListener assume @-prefixed placeholders and Guid values that map directly onto a DbParameter, neither of which Oracle accepts (:-prefixed placeholders, RAW(16) id columns requiring byte[]). Also fixes a latent OracleMessageStore.EnqueueAsync no-op that left LogRecordsAsync silently dropping node records, and makes FetchRecentRecordsAsync DBNull-safe on the description column. Adds a new OracleTests.LeaderElection project so the leadership-compliance suite runs against Oracle (marked [Trait("Category","Flaky")] because the suite needs careful TM/DML lock sequencing between back-to-back runs).

  • RavenDb: only one durability agent polls after host start (#​2623, #​2629) by @​Bishbulb (root-cause investigation and original fix) and @​jeremydmiller — RavenDbMessageStore.StartScheduledJobs eagerly built and started a RavenDbDurabilityAgent at boot in addition to the agent that NodeAgentController already builds and starts via IAgentFamily / MessageStoreCollection. Two RavenDbDurabilityAgent instances then polled the same database concurrently, both believed they held the scheduled-job lock, raced to mark the same envelopes Incoming, and surfaced ConcurrencyException plus double-fired timeouts. Drops the eager StartTimers() call; the cluster-managed agent is now the single owner of polling. The agent returned from StartScheduledJobs is held by WolverineRuntime.DurableScheduledJobs purely for its disposal-time StopAsync. Comes with a reflection-free regression test (added RavenDbDurabilityAgent.IsPolling and CompositeAgent.InnerAgents for the test to enumerate without poking at private fields). A companion regression-guard test for CosmosDb is included; investigation showed the equivalent CosmosDb path does NOT have the bug today (CosmosDbMessageStore.BuildAgentFamily returns null and Uri uses the cosmosdb:// scheme rather than wolverinedb://, so MessageStoreCollection never registers a competing agent).

Other improvements

  • AWS SQS: correct naming for sharded slot endpoints in #​1f294ce5 — fixes a regression where sharded slot endpoint URIs were assembled with the wrong segment ordering, causing the consumer side to listen at the wrong queue.

  • SagaDescriptor exported via ServiceCapabilities in #f0998c7b — adds a saga-shape descriptor (saga type, id type, current state) to the capabilities exporter so CritterWatch can surface saga inventory and current state in its dashboard.

Full Changelog: JasperFx/wolverine@V5.34.0...V5.35.1

5.34.0

What's Changed

This release introduces three new features (Claim Check pattern, declarative Polecat data requirements, and a new opt-in WolverineFx.RuntimeCompilation package as the first step toward AOT compatibility), a fix for a long-standing service-location footgun, several real RavenDB and EF Core durability fixes, plus the cold-start prep work done as part of issue #​1577.

Highlights

  • Add Claim Check / DataBus pattern with [Blob] attribute (#​2412) by @​jeremydmiller in #​2617 — off-load large message-property payloads to external storage on send and re-hydrate them on receive, so the on-the-wire envelope stays small. Core abstractions (IClaimCheckStore, ClaimCheckToken, [Blob], FileSystemClaimCheckStore, opts.UseClaimCheck(...)) live in Wolverine.Persistence. Two new backend NuGet packages ship alongside: WolverineFx.ClaimCheck.AzureBlobStorage and WolverineFx.ClaimCheck.AmazonS3. New documentation page under /guide/durability/claim-checks.
  • Declarative data-requirement attributes for Polecat (#​2552) by @​jeremydmiller in #​2615 — [DocumentExists<T>], [DocumentDoesNotExist<T>], and PolecatOps.Document<T>().MustExist(...) / .MustNotExist(...) mirror the Marten ergonomics, with the same batch-query optimization that folds multiple existence checks into a single Polecat IBatchedQuery round-trip.
  • Service-located IMessageBus / IMessageContext now see the active context (#​2583) by @​jeremydmiller in #​2616 — when user code service-locates IMessageBus (e.g., constructor injection on a service the handler resolves at runtime), it now receives the same MessageContext the handler itself uses, preserving outbox semantics. Implemented as a per-chain opt-in (gated on Chain.UsesServiceLocation) so chains that don't service-locate pay zero AsyncLocal overhead per message.
  • Cold-start optimizations and WolverineFx.RuntimeCompilation opt-in package (#​1577) by @​jeremydmiller in #​2613 and #cc00ca0a — first pass at the cold-start / AOT roadmap. Wires the Wolverine.SourceGeneration analyzer into the WolverineFx NuGet output (so source-generated IWolverineTypeLoader discovery flows transitively to consumers), pre-populates the WolverineMessageNaming cache during startup to eliminate first-message reflection cost, applies [DynamicallyAccessedMembers] annotations on the Activator.CreateInstance call sites for trimmer-friendliness, and adds ConfigureAwait(false) across 117 awaits on the per-message hot path. The new WolverineFx.RuntimeCompilation package becomes the future-facing opt-in API for runtime Roslyn compilation; default behavior is preserved.

RavenDB durability fixes

  • Fix bulk RavenDB inbox store leaking duplicates as inbox-unavailable (#​2606) by @​Bishbulb in #​2606
  • Take over expired RavenDB scheduled-job and leadership locks (#​2608) by @​Bishbulb in #​2608
  • Disable optimistic concurrency on RavenDB cluster-wide node sessions; load-then-modify on agent-assignment writes (#​2610) by @​Bishbulb in #​2610

EF Core / ancillary stores

  • Fix DurableLocalQueue to route incoming envelopes to ancillary stores (#​2611) by @​jeremydmiller — handler chains targeting an ancillary message store now have their incoming envelopes persisted in that store rather than the main store, fixing a class of "envelope stuck as Incoming forever" bugs.
  • Fix WolverineEnabled annotation collision in ancillary-store EF Core scenarios as part of #​2618 — MapWolverineEnvelopeStorage is now idempotent when called against the same model graph more than once.

Other improvements

  • Fix MessageBus clobbering per-message Envelope.Source in #​26e38002 — MessageBus.Send was overwriting the per-message Source with the host's ServiceName, masking the originating service in causation tracking.
  • Surface upcoming ServiceLocationPolicy.NotAllowed v6 default (#​2584) by @​jeremydmiller in #​2609 — chains that resolve dependencies via service location now log a warning at codegen time, with a clear migration path to the new opt-in Wolverine.RuntimeCompilation story for v6.

CI stabilization

  • Several flaky test classes fixed or marked in #​2612 and #​2618 — timeout bumps, IDisposableIAsyncLifetime conversions, lifecycle cleanup; chronically broken-on-CI classes (SqliteTests.Transport.multi_tenancy_with_multiple_files, CosmosDbTests.LeaderElection.leader_election, Wolverine.RabbitMQ.Tests.send_by_topics, Wolverine.RabbitMQ.Tests.sending_raw_messages) tagged [Trait("Category", "Flaky")] with header comments documenting the symptom and the real follow-up fix.
  • JasperFx 1.28 / RuntimeCompiler 4.5 ambiguity fallout fixed in #​2618 — files importing both JasperFx.CodeGeneration and JasperFx.RuntimeCompiler now compile cleanly after the InitializeSynchronously extension method was moved into JasperFx.CodeGeneration upstream.

Issue-tracker housekeeping

  • #​2507 (Quartz.Net / TickerQ first-class integration) added to the 6.0 milestone with a phased plan documented on the issue.
  • #​1577 (cold-start optimization roadmap) updated with a six-phase plan and current-state checklist; phases 1–4 are non-breaking on v5.x and largely landed in this release.

Full Changelog: JasperFx/wolverine@V5.33.0...V5.34.0

5.33.0

What's Changed

This release includes a major reliability fix for distributed leader election, a port of the Polecat 2.x event store integration, and several other quality-of-life improvements.

Highlights

  • Fix #​2602: Leader split-brain via stale advisory lock by @​jeremydmiller in #​2607 — three-layer defensive fix that detects when a Postgres/SQL Server/MySQL/Oracle/SQLite advisory lock has been silently released server-side, steps down the local leader, releases its agents, and triggers a fresh leader election. Adds a new LeadershipLost node record type and an IWolverineObserver.LostLeadership() hook for monitoring.
  • Polecat 2.x event store integration by @​jeremydmiller in #​2598 — ports the aggregate handler workflow from Marten so SQL Server-backed projects can use Polecat as a native event store with Wolverine. Requires SQL Server 2025 for the native JSON type.
  • Fix #​2571: Preserve context fields on scheduled-send wrap/unwrap by @​jeremydmiller in #​2605 — saga IDs, tenant IDs, and other correlation fields now survive the scheduled-send envelope round-trip.
  • gRPC enhancements by @​jeremydmiller in #​2565 — middleware weaving, validate convention, user exception mapping, bidirectional streaming, code-first codegen, plus new samples.
  • Allow RabbitMQ exchanges to be declared passive by @​jeremydmiller in #​2574

Other Improvements

  • Move non-sticky-handlers guard inside the compile lock by @​jeremydmiller in #​2556
  • Add launchSettings.json to sample projects by @​jeremydmiller in #​2600

Full Changelog: JasperFx/wolverine@V5.32.1...V5.33.0

What's Changed

New Contributors

Full Changelog: JasperFx/wolverine@V5.32.1...V5.33.0

5.32.1

What's Changed

New Contributors

Full Changelog: JasperFx/wolverine@V5.32.0...V5.32.1

5.32.0

What's Changed

Full Changelog: JasperFx/wolverine@V5.31.1...V5.32.0

5.31.1

What's Changed

Full Changelog: JasperFx/wolverine@V5.31.0...V5.31.1

5.31.0

What's Changed

New Contributors

Full Changelog: JasperFx/wolverine@V5.30.0...V5.31.0

5.30.0

This release is mostly about CritterWatch or the new AI skills usage with a few housekeeping issues

What's Changed

Full Changelog: JasperFx/wolverine@V5.29.0...V5.30.0

5.29.0

What's Changed

New Contributors

Full Changelog: JasperFx/wolverine@V5.28.0...V5.29.0

5.28.0

What's Changed

New Contributors

Full Changelog: JasperFx/wolverine@V5.27.0...V5.28.0

5.27.0

What's Changed

New Contributors

Full Changelog: JasperFx/wolverine@V5.26.0...V5.27.0

5.26.0

What's Changed

New Contributors

Full Changelog: JasperFx/wolverine@V5.25.0...V5.26.0

5.25.0

What's Changed

New Contributors

Full Changelog: JasperFx/wolverine@V5.24.0...V5.25.0

Commits viewable in compare view.

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

---
updated-dependencies:
- dependency-name: WolverineFx
  dependency-version: 6.4.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added .NET Pull requests that update .net code dependencies Pull requests that update a dependency file labels Jun 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET Pull requests that update .net code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants