Repository navigation
JasperFx 2.93.0
Highlights
- Projection start floors (#809, #1068): a rebuild now honours a configured
SubscribeFromSequence/SubscribeFromTimefloor and seeds the progression row first (it used to replay from 0). There is also a new persisted per-database floor seam onIEventDatabase(FetchProjectionFloorAsync/TrySetProjectionFloorAsync/SetProjectionFloorAsync) and a newAsyncOptions.SubscribeFromFirstRun()strategy. Store implementations: JasperFx/marten#5740, JasperFx/polecat#813, JasperFx/fisher#471. - Document diagnostics for CritterWatch:
IDocumentStoreDiagnosticsWriter.UndeleteDocumentAsync(#1059, #1062) andDocumentQueryOptions.OrderByMetadata(#1058, #1063). - Systemic database failures pause the shard (#1029, #1064): under
SkipApplyErrors, a non-transientDbExceptionraised from projection code is no longer dead-lettered event by event. It pauses the shard withShardFailure.IsTransient = false.⚠️ This is a behaviour change on Polecat and Fisher. Marten follow-up: JasperFx/marten#5741. - CLI:
--key=valuesplits at the first=only, so connection strings passed byWebApplicationFactoryno longer produce "Invalid usage" output (#1057, #1060).
Compliance suites
- New:
SoftDeleteCompliance,DocumentMetadataCompliance(#785, #1067) andProjectionFloorCompliance(#1068). New undelete and metadata-ordering facts inDocumentStoreDiagnosticsCompliance. Everything new is gated off by default. SingleTenantedEventSlicingComplianceis[Obsolete]and will be removed in 3.0 (#727, #1066, #1065).
Other
- JasperFx.Aspire README, sample SDK and publish-workflow cleanup (#1035, #1061).
- New scheduled
PublishAotgate proving the AOT roots companion end to end, with a negative control (#777, #1069).
Compatibility
No public members were removed or changed. Every member added to an existing interface has a default implementation (verified against 2.92.0 with a public-API diff and the contract ratchet), so stores built against 2.92 keep loading.