Skip to content

JasperFx 2.80.0

Choose a tag to compare

@jeremydmiller jeremydmiller released this 04 Oct 18:43

Fixes

  • ValueTypeInfo strong-typed id wrappers now work under Native AOT (#942, #946). CreateWrapper<TOuter, TInner>() and UnWrapper<TOuter, TInner>() previously always compiled via FastExpressionCompiler and threw PlatformNotSupportedException in a native image. They now branch on RuntimeFeature.IsDynamicCodeSupported, like LambdaBuilder, and fall back to invoking the resolved constructor, static builder, or value property through reflection. JIT behaviour is unchanged.

Compliance suite (JasperFx.Events.ComplianceTests)

  • DocumentSearchCompliance gains hierarchy facts (#944, #945). Two new ComplianceMemory sub-classes and four facts, gated on SupportsDocumentHierarchies plus the search flags: sub-class vector search, root vector search, sub-class hybrid search, and a sub-class search filtering on the sub-class's own member. The facts assert a member only the requested sub-class carries, not just a count. ⚠️ Stores whose search path has no doc_type predicate will fail these (see polecat#723, marten#5440).
  • GuidOptimisticConcurrencyCompliance covers the mapped version member (#943). It now covers a version mapped through the store's metadata (Metadata(m => m.Version.MapTo(...))) as well as the IVersioned marker interface. The mapped route is a separate code path that has broken four times across stores.

Downstream follow-ups

Full Changelog: V2.79.2...V2.80.0