Skip to content

Release digest for week of 2026-05-25 to 2026-06-01

  • AuthProxy (Release v2.4.0): Source/Aspire class library (Aspire.Hosting 9.5.2) with AuthProxyResource : ContainerResource pointing at cratis/authproxy and a full set of fluent extension methods on IResourceBuilder<T> where T : IResourceWithEnvironment — works on both container and project resources
  • AuthProxy (Release v2.4.0): OidcProviderType enum (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, all With* extension methods, the OidcProviderType enum, 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-nuget job in .github/workflows/publish.yml using OIDC trusted publishing (NuGet/login@v1) — packs and pushes only Source/Aspire/Aspire.csproj as Cratis.AuthProxy.Aspire to NuGet.org; runs independently of the Docker pipeline
  • Components (Release v2.0.0): Added CratisComponentsProvider as the single setup point for PrimeReact global options such as unstyled, 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, and className forwarding on single-widget wrappers.
  • Components (Release v2.0.0): Added per-slot pass-through props on composite wrappers, including dialogPt, tablePt, menubarPt, and paginatorPt.
  • Components (Release v2.0.0): Added root className support on large composites where per-slot forwarding is not practical.
  • Components (Release v2.0.0): Added subpath exports for ObjectContentEditor, ObjectNavigationalBar, SchemaEditor, and tokens.
  • 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 payloadSchema to command introspection metadata output. (#2258)
  • Arc (Release v20.33.1): Added argumentsSchema to 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 keyed System.Diagnostics.Metrics.Meter and keyed open-generic IMeter<T>.
  • Fundamentals (Release v7.10.4): Public AddNamedActivitySource(string name) extension to register a keyed System.Diagnostics.ActivitySource and keyed open-generic IActivitySource<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): useOnMessage React hook that subscribes to messages of a given type from the nearest MessengerScope, with an optional filter predicate that receives the typed message and decides whether the consumer is interested.
  • Arc (Release v20.27.0): useSendMessage React hook that returns a stable function for publishing messages to the nearest MessengerScope.
  • Arc (Release v20.27.0): ICanProvideUsers and User (MicrosoftIdentity: ClientPrincipal, Details: object) in Cratis.Arc.Identity (#2249).
  • Arc (Release v20.27.0): ICanProvideTenants, Tenant (Id: TenantId, Name: TenantName), and TenantName concept in Cratis.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.json for redistributable module access.
  • 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.cs updated to use WithBackend / WithFrontend instead of bare WithReference, and now wires up the frontend (web) service as well
  • AuthProxy (Release v2.4.0): Source/Aspire/Aspire.csproj updated 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 primereact and primeicons from runtime dependencies to peer dependencies; consumers must declare them directly after upgrading.
  • Components (Release v2.0.0): Changed pixi.js, framer-motion, and allotment to optional peer dependencies so consumers only install them when using the matching components.
  • Components (Release v2.0.0): Changed FormElement addon styling to use stable Cratis CSS classes and --cratis-* tokens instead of PrimeReact p-inputgroup-addon classes.
  • Components (Release v2.0.0): Changed ObjectNavigationalBar and SchemaEditor bottom borders to render through Cratis CSS instead of PrimeFlex u
  • Fundamentals (Release v7.10.5): Reworked Meter<T> and ActivitySource<T> to resolve keyed services via IServiceProvider and [ServiceKey] string?, while preserving parameterless and explicit-instance constructors.
  • Fundamentals (Release v7.10.5): Kept named diagnostics registrations returning the same keyed Meter and ActivitySource instances for typed wrappers.
  • Fundamentals (Release v7.10.5): Updated the .NET build workflow to run on pull_request so 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 IdentityEndpointMapper to 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 no IProvideIdentityDetails is 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/me handler, 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 nested ChildrenFrom<T> routes take precedence for child creation.
  • Chronicle (Release v15.31.5): Changed in-memory ReadModelScenario child 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 separate NamedMeter<T> implementation.
  • Fundamentals (Release v7.10.4): Named activity source registration now reuses existing ActivitySource<T> instead of a separate NamedActivitySource<T> implementation.
  • Fundamentals (Release v7.10.4): Meter<T> and ActivitySource<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.md and Documentation/csharp/traces/index.md to link to named registration pages.
  • Fundamentals (Release v7.10.4): Updated Documentation/csharp/metrics/toc.yml and Documentation/csharp/traces/toc.yml to 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 Source module 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 Source modules plus top-level package exports.
  • Fundamentals (Release v7.10.6): Prevent failures resolving IActivitySource<T> and IMeter<T> when an unkeyed framework ActivitySource or Meter is 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 CustomEvent usage 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 .cratis users/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.Instance discovery (#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 ChildrenFrom projections 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 ChildrenFrom definitions, breaking no-auto-map and identified-by-property expectations.
  • Fundamentals (Release v7.10.4): IMeter<T> and IActivitySource<T> keyed resolutions bind to the correct named underlying Meter / ActivitySource instance instead of defaulting to type-name instances.
  • Arc (Release v20.27.0): Dialogs created via useDialog no 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 useDialog no 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 with StackOverflowException during 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.
  • 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 existing Meter<T> implementation.
  • Fundamentals (Release v7.10.4): Removed NamedActivitySource<T> in favor of the existing ActivitySource<T> implementation.
  • Fundamentals (Release v7.10.5): Replaced pull_request_target with pull_request for 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.
  • No updates