Release digest: May 25 - June 1, 2026 (Week 22)
- AuthProxy (Release v2.4.0):
Source/Aspireclass library (Aspire.Hosting9.5.2) withAuthProxyResource : ContainerResourcepointing atcratis/authproxyand a full set of fluent extension methods onIResourceBuilder<T> where T : IResourceWithEnvironment— works on both container and project resources - AuthProxy (Release v2.4.0):
OidcProviderTypeenum (Custom,Microsoft,Google,GitHub,Apple) in the Aspire library — standalone, no dependency on the AuthProxy web project - AuthProxy (Release v2.4.0):
Documentation/aspire/index.md— how-to guide covering container vs project resource setup, allWith*extension methods, theOidcProviderTypeenum, tenant selection, invites & lobby, identity details resolution, resource-based endpoint references, and cross-links to the existing configuration reference - AuthProxy (Release v2.4.0):
publish-nugetjob in.github/workflows/publish.ymlusing OIDC trusted publishing (NuGet/login@v1) — packs and pushes onlySource/Aspire/Aspire.csprojasCratis.AuthProxy.Aspireto NuGet.org; runs independently of the Docker pipeline - Components (Release v2.0.0): Added
CratisComponentsProvideras the single setup point for PrimeReact global options such asunstyled,pt,ptOptions, locale, ripple, and overlay config. - Components (Release v2.0.0): Added a
--cratis-*CSS variable token layer for Cratis-owned surfaces, themed out of the box from whichever PrimeReact theme is loaded. - Components (Release v2.0.0): Added PrimeReact 10 and 11 compatibility for the token layer — each
--cratis-*token resolves the PrimeReact v11 design token (@primeuix/themes) first and falls back to the v10 theme variable, so the same build works across both majors. - Components (Release v2.0.0): Added
pt,ptOptions,unstyled, andclassNameforwarding on single-widget wrappers. - Components (Release v2.0.0): Added per-slot pass-through props on composite wrappers, including
dialogPt,tablePt,menubarPt, andpaginatorPt. - Components (Release v2.0.0): Added root
classNamesupport on large composites where per-slot forwarding is not practical. - Components (Release v2.0.0): Added subpath exports for
ObjectContentEditor,ObjectNavigationalBar,SchemaEditor, andtokens. - Components (Release v2.0.0): Added Styling documentation for using a PrimeReact theme, applying a custom palette, using fully unstyled mode, combining styling setups, Cratis tokens, and PrimeReact pass-through props.
- Components (Release v2.0.0): Added a migration guide covering peer dependency changes, visual changes, provider setup, and optional styling capabilities.
- Components (Release v2.0.0): Added a Storybook Styling toolbar with previews for Lara Dark Blue, Lara Light Blue, Custom palette, Unstyled bare, and Unstyled + Tailwind
pt. - Components (Release v2.0.0): Added
sideEffects: ["**/*.css"]so bundlers can tree-shake unused JS while preserving CSS imports. - Arc (Release v20.33.1): Added
payloadSchemato command introspection metadata output. (#2258) - Arc (Release v20.33.1): Added
argumentsSchemato query introspection metadata, including required argument fields. (#2258) - Arc (Release v20.33.1): Added Arc.Core round-trip specs for plain numbers,
NaN,Infinity, and-Infinity. (#2263) - Arc (Release v20.33.0): Expose live observable query diagnostics through ArcContext with RxJS snapshot streaming.
- Arc (Release v20.32.0): Expose live observable query diagnostics through ArcContext with RxJS snapshot streaming.
- Arc (Release v20.31.0): Expose live observable query diagnostics through ArcContext with RxJS snapshot streaming.
- Arc (Release v20.30.0): Expose live observable query diagnostics through ArcContext with RxJS snapshot streaming.
- Arc (Release v20.29.0): Expose live observable query diagnostics through ArcContext with RxJS snapshot streaming.
- Arc (Release v20.28.0): Expose live observable query diagnostics through ArcContext with RxJS snapshot streaming.
- Arc (Release v20.27.3): Added no-provider specs for identity schema, users, and tenants endpoint responses.
- Arc (Release v20.27.3): Added assertions that provider-missing mapping still registers
/.cratis/identity-details/schema,/.cratis/users, and/.cratis/tenants. - Chronicle (Release v15.31.5): Added model-bound projection spec coverage for self-referencing children to assert nested placement of sub-children.
- Fundamentals (Release v7.10.4): Public
AddNamedMeter(string name)extension to register a keyedSystem.Diagnostics.Metrics.Meterand keyed open-genericIMeter<T>. - Fundamentals (Release v7.10.4): Public
AddNamedActivitySource(string name)extension to register a keyedSystem.Diagnostics.ActivitySourceand keyed open-genericIActivitySource<T>. - Fundamentals (Release v7.10.4): Focused DI specs for named diagnostics resolution under
for_DiagnosticsServiceCollectionExtensions. - Fundamentals (Release v7.10.4): New observability docs pages for named registration:
- Fundamentals (Release v7.10.4):
Documentation/csharp/metrics/named-registration.md - Fundamentals (Release v7.10.4):
Documentation/csharp/traces/named-registration.md - Arc (Release v20.27.0):
useOnMessageReact hook that subscribes to messages of a given type from the nearestMessengerScope, with an optional filter predicate that receives the typed message and decides whether the consumer is interested. - Arc (Release v20.27.0):
useSendMessageReact hook that returns a stable function for publishing messages to the nearestMessengerScope. - Arc (Release v20.27.0):
ICanProvideUsersandUser(MicrosoftIdentity: ClientPrincipal,Details: object) inCratis.Arc.Identity(#2249). - Arc (Release v20.27.0):
ICanProvideTenants,Tenant(Id: TenantId,Name: TenantName), andTenantNameconcept inCratis.Arc.Tenancy(#2249). - Chronicle.TypeScript (Release v0.2.0): Top-level module re-exports from the package entrypoint to support module-style consumption.
- Chronicle.TypeScript (Release v0.2.0): Explicit top-level subpath exports in
Source/package.jsonfor redistributable module access.
Changed
Section titled “Changed”- Fundamentals (Release v7.10.6): Route named and default diagnostics registrations through dedicated keyed and unkeyed meter/activity source implementations to avoid constructor-selection ambiguity during DI activation.
- Fundamentals (Release v7.10.6): Align related specs and analyzer test sources with concise type references and update local dictionary entries for new diagnostics terminology.
- AuthProxy (Release v2.4.0):
Composition/AppHost.csupdated to useWithBackend/WithFrontendinstead of bareWithReference, and now wires up the frontend (web) service as well - AuthProxy (Release v2.4.0):
Source/Aspire/Aspire.csprojupdated with full NuGet package metadata (PackageId,Title,Description,Authors,PackageLicenseExpression,RepositoryUrl,PackageTags,IsPackable) - AuthProxy (Release v2.4.0): `WithSelectionTenantReso
- Components (Release v2.0.0): Changed
primereactandprimeiconsfrom runtime dependencies to peer dependencies; consumers must declare them directly after upgrading. - Components (Release v2.0.0): Changed
pixi.js,framer-motion, andallotmentto optional peer dependencies so consumers only install them when using the matching components. - Components (Release v2.0.0): Changed
FormElementaddon styling to use stable Cratis CSS classes and--cratis-*tokens instead of PrimeReactp-inputgroup-addonclasses. - Components (Release v2.0.0): Changed
ObjectNavigationalBarandSchemaEditorbottom borders to render through Cratis CSS instead of PrimeFlex u - Fundamentals (Release v7.10.5): Reworked
Meter<T>andActivitySource<T>to resolve keyed services viaIServiceProviderand[ServiceKey] string?, while preserving parameterless and explicit-instance constructors. - Fundamentals (Release v7.10.5): Kept named diagnostics registrations returning the same keyed
MeterandActivitySourceinstances for typed wrappers. - Fundamentals (Release v7.10.5): Updated the .NET build workflow to run on
pull_requestso CI validates PR changes instead of the base branch. - Arc (Release v20.33.1): Switched introspection schema generation to Arc serializer options for consistent metadata contracts. (#2258)
- Arc (Release v20.33.1): Extended query parameter metadata to carry requiredness in model-bound and controller performers. (#2258)
- Arc (Release v20.33.1): Enabled named floating-point literals in Arc JSON defaults via
JsonNumberHandling.AllowNamedFloatingPointLiterals. (#2263) - Arc (Release v20.33.0): Route command, query, and introspection metadata through the shared route helper so skipped namespace segments stay consistent.
- Arc (Release v20.32.0): Route command, query, and introspection metadata through the shared route helper so skipped namespace segments stay consistent.
- Arc (Release v20.31.0): Route command, query, and introspection metadata through the shared route helper so skipped namespace segments stay consistent.
- Arc (Release v20.30.0): Route command, query, and introspection metadata through the shared route helper so skipped namespace segments stay consistent.
- Arc (Release v20.29.0): Route command, query, and introspection metadata through the shared route helper so skipped namespace segments stay consistent.
- Arc (Release v20.28.0): Route command, query, and introspection metadata through the shared route helper so skipped namespace segments stay consistent.
- Arc (Release v20.27.3): Changed
IdentityEndpointMapperto always map: - Arc (Release v20.27.3):
/.cratis/identity-details/schema - Arc (Release v20.27.3):
/.cratis/users - Arc (Release v20.27.3):
/.cratis/tenants - Arc (Release v20.27.3): Changed schema resolution to return
{}when noIProvideIdentityDetailsis registered. - Arc (Release v20.27.3): Changed users/tenants handlers to return
[]when no provider instances are available. - Arc (Release v20.27.3): Updated identity endpoint handler test fixture to capture only the
/.cratis/mehandler, preserving existing identity request test behavior. - Arc (Release v20.27.3): Updated introspection docs to reflect always-mapped schema endpoint and empty-schema fallback.
- Chronicle (Release v15.31.5): Changed class-level
FromEvent<T>propagation for child types so nestedChildrenFrom<T>routes take precedence for child creation. - Chronicle (Release v15.31.5): Changed in-memory
ReadModelScenariochild materialization to set child identifiers from resolved child keys for nested children. - Chronicle (Release v15.31.5): Changed self-referencing test fixture events/attributes to model nested child creation through parent key hierarchy.
- Fundamentals (Release v7.10.4): Named meter registration now reuses existing
Meter<T>instead of a separateNamedMeter<T>implementation. - Fundamentals (Release v7.10.4): Named activity source registration now reuses existing
ActivitySource<T>instead of a separateNamedActivitySource<T>implementation. - Fundamentals (Release v7.10.4):
Meter<T>andActivitySource<T>now support keyed resolution via[FromKeyedServices]while preserving non-keyed fallback behavior. - Fundamentals (Release v7.10.4): Named diagnostics registrations use keyed factory-based singleton registration for underlying
Meter/ActivitySource, preserving container-managed lifetime/disposal. - Fundamentals (Release v7.10.4): Documentation was reorganized so named/keyed observability registration guidance lives under metrics and traces, not dependency injection:
- Fundamentals (Release v7.10.4): Updated
Documentation/csharp/metrics/index.mdandDocumentation/csharp/traces/index.mdto link to named registration pages. - Fundamentals (Release v7.10.4): Updated
Documentation/csharp/metrics/toc.ymlandDocumentation/csharp/traces/toc.ymlto include named registration pages. - Fundamentals (Release v7.10.4): Removed named observability registration guidance from
Documentation/csharp/dependency_injection.md. - Chronicle.TypeScript (Release v0.2.0): Consolidated the feature work from the open PR branches into this integration PR.
- Chronicle.TypeScript (Release v0.2.0): Renamed
Sourcemodule folders from PascalCase to camelCase across the package. - Chronicle.TypeScript (Release v0.2.0): Updated internal imports/re-exports to match the new module folder naming.
- Chronicle.TypeScript (Release v0.2.0): Updated JavaScript/TypeScript AI instructions to state the redistributable package convention: camelCase
Sourcemodules plus top-level package exports.
- Fundamentals (Release v7.10.6): Prevent failures resolving
IActivitySource<T>andIMeter<T>when an unkeyed frameworkActivitySourceorMeteris present in the service collection. - Fundamentals (Release v7.10.6): Add regression specs covering named and self-binding diagnostics resolution with unkeyed framework diagnostics registrations.
- Fundamentals (Release v7.10.5): Restored successful release builds for the diagnostics wrappers across net8.0, net9.0, and net10.0.
- Fundamentals (Release v7.10.5): Fixed CI build validation so the .NET build workflow checks the PR head and reports the actual status of the diagnostics wrapper changes.
- Fundamentals (Release v7.10.5): Fixed the publish workflow failure caused by constructor binding differences between target frameworks.
- Arc (Release v20.33.1): Eliminated React Native/Hermes failure risk by removing
CustomEventusage from diagnostics snapshot publishing. (#2260) - Arc (Release v20.33.0): Introspection route metadata now reflects the same route prefix and skipped namespace segments as runtime endpoint mapping.
- Arc (Release v20.32.0): Introspection route metadata now reflects the same route prefix and skipped namespace segments as runtime endpoint mapping.
- Arc (Release v20.31.0): Introspection route metadata now reflects the same route prefix and skipped namespace segments as runtime endpoint mapping.
- Arc (Release v20.30.0): Introspection route metadata now reflects the same route prefix and skipped namespace segments as runtime endpoint mapping.
- Arc (Release v20.29.0): Introspection route metadata now reflects the same route prefix and skipped namespace segments as runtime endpoint mapping.
- Arc (Release v20.28.0): Introspection route metadata now reflects the same route prefix and skipped namespace segments as runtime endpoint mapping.
- Arc (Release v20.27.3): Fixed
.cratisusers/tenants/schema endpoints not being present in no-provider setups. - Arc (Release v20.27.3): Fixed no-provider responses to be explicit and machine-consumable (
[]/{}) rather than implicit host fallback content. - Arc (Release v20.27.2): Fixed read model DbContext auto-registration failing on iOS NativeAOT by scanning the provided assemblies directly instead of relying on
Types.Types.Instancediscovery (#2255). - Arc (Release v20.27.2): This regression is observed from v20.10.10, where reverted AOT safeguards exposed a
DependencyContext-dependent discovery path that can return no DbContext types on iOS, causing startup resolution failures (#2255). - Arc (Release v20.27.2): Also prevents silent type-loss when multiple DbContext types share the same class name in different namespaces (#2255).
- Chronicle (Release v15.31.5): Fixed self-referencing
ChildrenFromprojections that placed sub-children at root instead of under the parent child node. - Chronicle (Release v15.31.5): Fixed nested self-referencing read model materialization where child concept identifiers could deserialize incorrectly.
- Chronicle (Release v15.31.5): Fixed regressions where child identifier properties were unintentionally mapped in
ChildrenFromdefinitions, breaking no-auto-map and identified-by-property expectations. - Fundamentals (Release v7.10.4):
IMeter<T>andIActivitySource<T>keyed resolutions bind to the correct named underlyingMeter/ActivitySourceinstance instead of defaulting to type-name instances. - Arc (Release v20.27.0): Dialogs created via
useDialogno longer remount on every render of the hosting component. The wrapper component now has a stable identity, preventing portal leaks and visible remounts with PrimeReact and other portal-based dialogs. - Arc (Release v20.26.20): Dialogs created via
useDialogno longer remount on every render of the hosting component. The wrapper component now has a stable identity, preventing portal leaks and visible remounts with PrimeReact and other portal-based dialogs. - Chronicle (Release v15.31.4): Resolved ReadModelScenario parent-key resolution for child events on separate event sources by using an in-memory sink during projection and deferred retries.
- Chronicle (Release v15.31.4): Added regression coverage for self-referencing child-event projections to prevent unresolved parent-key failures in the testing pipeline.
- Chronicle (Release v15.31.3): Model-bound projections that reference their own type via
[ChildrenFrom](self-referential or mutually recursive children) no longer crash the client withStackOverflowExceptionduring projection discovery. - Chronicle.TypeScript (Release v0.2.0): Resolved integration issues caused by mixed module naming and export paths after consolidation.
- Chronicle.TypeScript (Release v0.2.0): Verified workspace compile succeeds after consolidation and module/export restructuring.
Removed
Section titled “Removed”- Chronicle (Release v15.31.5): Removed duplicate root-level creation path for nested self-referencing child events when a nested route already exists.
- Chronicle (Release v15.31.5): Removed unintended automatic child identifier property mapping that caused projection model-building regressions.
- Fundamentals (Release v7.10.4): Removed
NamedMeter<T>in favor of the existingMeter<T>implementation. - Fundamentals (Release v7.10.4): Removed
NamedActivitySource<T>in favor of the existingActivitySource<T>implementation.
Security
Section titled “Security”- Fundamentals (Release v7.10.5): Replaced
pull_request_targetwithpull_requestfor the .NET build workflow, reducing privileged workflow execution for PR validation. - Chronicle (Release v15.31.5): No security-impacting behavior changes.
- Fundamentals (Release v7.10.4): No security behavior change.
Deprecated
Section titled “Deprecated”- No updates