Release digest: May 18 - 25, 2026 (Week 21)
- 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. - Chronicle (Release v15.31.0): New Roslyn analyzers CHR0015–CHR0021 for projections, constraints, and event types, with documentation for each rule. (#1669)
- Chronicle (Release v15.31.0): Replay lifecycle notification hooks for reducers and reactors so handlers can react when a replay or partition replay starts and ends. (#1820)
- Chronicle (Release v15.31.0): Tail event sequence numbers in observer, reducer, reactor, and projection state APIs. (#587)
- Fundamentals (Release v7.10.0):
Cratis.Tracesabstractions and implementations:IActivitySource<T>,IActivityScope<T>,ActivitySource<T>,ActivityScope<T>, andSpanAttribute - Fundamentals (Release v7.10.0): Generator support for
[Span]methods that start activities and map method parameters to tags - Fundamentals (Release v7.10.0): Analyzer
CRT0001to requireusingdisposal semantics forIActivityScope<T>call sites - Fundamentals (Release v7.10.0):
Documentation/csharp/traces/index.mdandDocumentation/csharp/traces/roslyn.mdfor the trace API and generated span support - Fundamentals (Release v7.10.0): Expanded runtime, AOT, generator, and analyzer specs for trace behavior and diagnostics
- Fundamentals (Release v7.10.0): Roslyn spec coverage for generated trace extension methods, including tag generation
- Arc (Release v20.26.0): Added typed
CommandFormradio fields (RadioButtonField,RadioGroupField) with docs, stories, typecheck coverage, and field behavior specs (#2228) - Arc (Release v20.26.0): Added regression coverage for generated-style command
.use()registration insideCommandScope(#2227) - Arc (Release v20.26.0): Added hierarchical messaging primitives in
@cratis/arc/messaging, React messenger scope APIs, and scoped messaging docs/specs across Core/React/MVVM (#2231) - Components (Release v1.10.2): Introduced dynamic theme switching for PrimeReact components.
- Arc (Release v20.25.0): Added typed
CommandFormradio fields (RadioButtonField,RadioGroupField) with docs, stories, typecheck coverage, and field behavior specs (#2228) - Arc (Release v20.25.0): Added regression coverage for generated-style command
.use()registration insideCommandScope(#2227) - Arc (Release v20.25.0): Added hierarchical messaging primitives in
@cratis/arc/messaging, React messenger scope APIs, and scoped messaging docs/specs across Core/React/MVVM (#2231) - Narrator (Release v1.0.2): Arrow Left / Arrow Right page the Event Sequence viewer backward / forward, alongside the existing Page Up / Page Down shortcuts. Up / Down still move row-by-row within a page.
- Narrator (Release v1.0.0): Browse events in a Chronicle event sequence directly from the Explorer. The Sequences folder under each namespace now lists the well-known event sequences (Event Log, Outbox, System); clicking one opens a paged event viewer (50 per page, bi-directional) with Seq #, Occurred, Event Type and Event Source ID columns.
- Narrator (Release v1.0.0): Details pane on the event viewer with Context / Content tabs, both rendered as key/value property tables.
- Narrator (Release v1.0.0): Keyboard navigation in the event viewer: Up/Down move between rows (transparently paging across page boundaries), Home/End jump to the page edges, PageUp/PageDown move whole pages.
- Chronicle (Release v15.30.2): TypeScript contract generation now maps proto
int64/uint64fields tobigint. - Arc (Release v20.24.27): Added a packaging integration spec (
for_CratisPackage/when_packing_cratis) that packsCratisand assertsCratis.Arc.ProxyGenerator.Buildis present in the generated nuspec dependencies (#2225) - Arc (Release v20.24.26): Added a packaging integration spec (
for_CratisPackage/when_packing_cratis) that packsCratisand assertsCratis.Arc.ProxyGenerator.Buildis present in the generated nuspec dependencies (#2225) - Arc (Release v20.24.25): Updated Chronicle package baselines to
15.30.0forCratis.Chronicle,Cratis.Chronicle.AspNetCore, andCratis.Chronicle.Testing. - Fundamentals (Release v7.9.19): Added a regression spec covering a local implementation of an interface from a non-global aliased assembly
- Fundamentals (Release v7.9.18): Added
EnsureGeneratedTypeDiscoveryProvidersAreRegistered()to load referenced assemblies and execute module constructors prior to generated DI convention lookup. - Fundamentals (Release v7.9.18): Added a dedicated probe test assembly (
Fundamentals.Specs.ModuleInitializerProbe) that contributes convention-based bindings via generated type discovery. - Fundamentals (Release v7.9.18): Added a regression spec covering the “assembly loaded before module initializer runs” scenario.
- Fundamentals (Release v7.9.17): Added
EnsureGeneratedTypeDiscoveryProvidersAreRegistered()to load referenced assemblies and execute module constructors prior to generated DI convention lookup. - Fundamentals (Release v7.9.17): Added a dedicated probe test assembly (
Fundamentals.Specs.ModuleInitializerProbe) that contributes convention-based bindings via generated type discovery. - Fundamentals (Release v7.9.17): Added a regression spec covering the “assembly loaded before module initializer runs” scenario.
- Arc (Release v20.24.14): Updated Chronicle package baselines to
15.30.0forCratis.Chronicle,Cratis.Chronicle.AspNetCore, andCratis.Chronicle.Testing. - Arc (Release v20.24.8): Added a regression spec for
MongoDBClientFactoryverifyingmongodb://.../?directConnection=trueremains effective whenMongoDBOptions.DirectConnectionis not explicitly set (#3284) - Chronicle (Release v15.30.0):
IAppendResultForObserverCompletionas a shared append-tail contract across append results, including event-store/namespace/sequence context and tail sequence number (#1845) - Chronicle (Release v15.30.0):
WaitForCompletionclient extension inCratis.Chronicle.ObservationreturningAppendResultWaitForCompletionResultwith completion status and failed partitions (#1845) - Chronicle (Release v15.30.0):
IObservers.WaitForCompletiongRPC contract plus request/response messages for observer completion waits (#1845) - Chronicle (Release v15.30.0): Documentation for
WaitForCompletionusage after bothAppendandAppendManyoperations (#1845) - Chronicle (Release v15.30.0): Integration coverage for append/observer workflows with failing and concurrently processing observers to verify active observer processing behavior during failures (#1845)
- Arc (Release v20.24.6): Added command-scenario coverage proving handlers can take direct ReadModel dependencies in Chronicle command tests. (#2212)
- Arc (Release v20.24.6): Added Chronicle command-scenario fixtures for the ReadModel dependency test path, including a projection type used for discovery. (#2212)
- Chronicle (Release v15.29.8): Introduced logging for registration failures.
- Chronicle (Release v15.29.7): Focused spec coverage ensuring
directConnection=trueis preserved when building MongoDB client settings in theWithMongoDBpath. - Chronicle (Release v15.29.6): Added Storage.MongoDB specs covering
directConnection=truebehavior forDatabase, read-model database creation,EventStoreDatabase, andEventStoreNamespaceDatabase. - Chronicle (Release v15.29.4): Focused spec for
ProjectionDefinitionComparervalidating thatTags/Nestednulland empty forms compare as equivalent. - Arc (Release v20.24.0):
CommandScenarioChronicleAssertionExtensions— newShouldHaveAppendedEvent<TCommand, TEvent>()andShouldHaveTailSequenceNumber<TCommand>()assertion helpers forCommandScenario<TCommand>, using the client-sideAppendOperationsobservable for reliable event capture - Arc (Release v20.24.0):
AppendedEventsextension property onCommandScenario<TCommand>exposing all events captured during command execution - Arc (Release v20.24.0): Integration specs covering
EventForEventSourceIdandIEnumerable<EventForEventSourceId>handler return types viaCommandScenario - Arc (Release v20.24.0): Pipeline specs for
EventForEventSourceIdandIEnumerable<EventForEventSourceId>command handler execution
Changed
Section titled “Changed”- 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. - Arc (Release v20.26.16): Bumped
Cratis.FundamentalsandCratis.Metrics.Roslynfrom7.9.16to7.10.3. - Arc (Release v20.26.16): Bumped
Testcontainers.MsSqlandTestcontainers.PostgreSqlfrom4.11.0to4.12.0. - Arc (Release v20.26.16): Bumped
Meziantou.Analyzerfrom3.0.85to3.0.93. - Arc (Release v20.26.15): Bumped
Cratis.FundamentalsandCratis.Metrics.Roslynfrom7.9.16to7.10.3. - Arc (Release v20.26.15): Bumped
Testcontainers.MsSqlandTestcontainers.PostgreSqlfrom4.11.0to4.12.0. - Arc (Release v20.26.15): Bumped
Meziantou.Analyzerfrom3.0.85to3.0.93. - Chronicle (Release v15.31.0): Compliance storage documentation now includes Azure Key Vault configuration and authentication guidance. (#685)
- Chronicle (Release v15.31.0): Event redaction documentation now explains how
EventRedactedis delivered to reducers and reactors that also subscribe to the original event type. (#890) - Fundamentals (Release v7.10.0):
Cratis.Metrics.Roslyngenerates trace wrappers alongside existing metrics generation - Fundamentals (Release v7.10.0): Typed
IMeter<>andIActivitySource<>open generics are registered through DI - Fundamentals (Release v7.10.0): Tag generation supports snake_case trace tags, including acronym-aware conversion
- Fundamentals (Release v7.10.0): The C# documentation table of contents includes the new traces section
- Fundamentals (Release v7.10.0): Trace documentation and examples now prefer extension-method span declarations and call sites on
IActivitySource<T> - Arc (Release v20.26.0): Changed
CommandForm/generated command usage so the internal command version stays insideCommandFormwhile public.use()hooks align to the 3-tupleuseCommandAPI (#2227) - Arc (Release v20.26.0): Changed Arc root and MVVM wiring to resolve the nearest scoped messenger with root fallback, and updated package exports for new messaging entry points (#2231)
- Arc (Release v20.26.0): Changed change-stream spec infrastructure to isolate fake subscriptions/query cache state per spec and avoid cross-test leakage (#2227)
- Components (Release v1.10.2): Improved styling and class names for better consistency.
- Components (Release v1.10.2): Updated theme import strategy to support dynamic theming.
- Arc (Release v20.25.0): Changed
CommandForm/generated command usage so the internal command version stays insideCommandFormwhile public.use()hooks align to the 3-tupleuseCommandAPI (#2227) - Arc (Release v20.25.0): Changed Arc root and MVVM wiring to resolve the nearest scoped messenger with root fallback, and updated package exports for new messaging entry points (#2231)
- Arc (Release v20.25.0): Changed change-stream spec infrastructure to isolate fake subscriptions/query cache state per spec and avoid cross-test leakage (#2227)
- Narrator (Release v1.0.0): Breaking: upgrade
@cratis/chronicle.contractsfrom15.22.13to15.30.2. The contracts now shipbigintsequence numbers and anice-grpcpromise-based client surface in place of the previous grpc-js callback*Clientconstructors. Anyone forking or embeddingChronicleClientManagerwill need to adapt accordingly. - Narrator (Release v1.0.0): Gateway sequence numbers are converted to
numberat the boundary, clampingulong.MaxValuetoNumber.MAX_SAFE_INTEGER(the Chronicle “no events yet” sentinel). Real event sequence numbers cannot legitimately exceed 2^53, so the clamp has no observable effect on real data. - Chronicle (Release v15.30.2): Updated
@cratis/chronicle.contractsgeneration options to usets-protowithforceLong=bigint. - Chronicle (Release v15.30.2): Updated TypeScript package and contributor documentation to reflect
biginthandling for 64-bit fields. - Arc (Release v20.24.27): Updated
Source/DotNET/Cratis/Cratis.csprojto keepProxyGenerator.Buildas a regular project dependency so NuGet emits it as a package dependency andbuildTransitiveassets flow to consumers again (#2225) - Arc (Release v20.24.27): Updated the regressing Chronicle spec setup in
when_handler_takes_read_model_dependencyto match theIReadModels.GetInstanceById(...)invocation and explicitly registerAccountBalanceReadModelin scenario DI (#2225) - Arc (Release v20.24.27): Updated
.github/workflows/dotnet-build.ymlcheckout steps to use the PR head SHA onpull_request_targetruns instead of implicitly testing the base branch checkout (#2225) - Arc (Release v20.24.26): Updated
Source/DotNET/Cratis/Cratis.csprojto keepProxyGenerator.Buildas a regular project dependency so NuGet emits it as a package dependency andbuildTransitiveassets flow to consumers again (#2225) - Arc (Release v20.24.26): Updated the regressing Chronicle spec setup in
when_handler_takes_read_model_dependencyto match theIReadModels.GetInstanceById(...)invocation and explicitly registerAccountBalanceReadModelin scenario DI (#2225) - Arc (Release v20.24.26): Updated
.github/workflows/dotnet-build.ymlcheckout steps to use the PR head SHA onpull_request_targetruns instead of implicitly testing the base branch checkout (#2225) - Arc (Release v20.24.25): Reflection binding
- Arc (Release v20.24.25):
ReadModelServiceCollectionExtensionsnow resolves the generic single-parameterIReadModels.Release<T>(T)method instead of the removed two-parameter overload. - Arc (Release v20.24.25): Read model resolution flow
- Arc (Release v20.24.25):
ResolveReadModelnow keeps subject-based branching and only invokes release whencommandContext.GetSubject()is present. - Arc (Release v20.24.25): The release invocation uses the new Chronicle-compatible method shape (
Release<T>(T)). - Arc (Release v20.24.25): Spec expectations
- Arc (Release v20.24.25): Updated read model resolution specs to assert single-parameter release calls where subject is present.
- Arc (Release v20.24.25): Restored the no-subject behavior to return the loaded read model without invoking release.
- Chronicle (Release v15.30.1):
EventSourceType,EventStreamType, andEventStreamIdare nowstring?(nullable) across all EventSequence gRPC contract types; clients sendnullwhen unspecified instead of pre-applying defaults (#3259) - Chronicle (Release v15.30.1): Required fields (
EventStore,Namespace,EventSequenceId,EventSourceId,EventType,Content, etc.) are now annotated withIsRequired = trueon theirProtoMemberacross all EventSequence request/payload contracts (#3259) - Chronicle (Release v15.30.1): Kernel service layer (
EventSequences.cs) andEventToAppendConvertersapplyEventSourceType.Default/EventStreamType.All/EventStreamId.Defaultwhen null arrives, consistent with the existingGetTailSequenceNumbernull-passthrough pattern (#3259) - Chronicle (Release v15.30.1): DotNET client resolves defaults locally only for concurrency scope resolution and local event-context notification; the wire values are sent as
nullwhen the caller does not specify them (#3259) - Chronicle (Release v15.30.1):
Cratis.FundamentalsandCratis.Metrics.Roslynupgraded to 7.9.19; the updated generator correctly filters non-global aliased assembly contracts, removing the need for theInMemoryKernelEventTypesnested-class workaround - Arc (Release v20.24.17): Reflection binding
- Arc (Release v20.24.17):
ReadModelServiceCollectionExtensionsnow resolves the generic single-parameterIReadModels.Release<T>(T)method instead of the removed two-parameter overload. - Arc (Release v20.24.17): Read model resolution flow
- Arc (Release v20.24.17):
ResolveReadModelnow keeps subject-based branching and only invokes release whencommandContext.GetSubject()is present. - Arc (Release v20.24.17): The release invocation uses the new Chronicle-compatible method shape (
Release<T>(T)). - Arc (Release v20.24.17): Spec expectations
- Arc (Release v20.24.17): Updated read model resolution specs to assert single-parameter release calls where subject is present.
- Arc (Release v20.24.17): Restored the no-subject behavior to return the loaded read model without invoking release.
- Fundamentals (Release v7.9.19): Filter generated contract maps and convention bindings to exclude external contracts from non-global aliased references
- Fundamentals (Release v7.9.19): Scoped the ModuleInitializerProbe reference and its probe-backed spec to the
net10.0target inFundamentals.Specs - Fundamentals (Release v7.9.19): Made the ModuleInitializerProbe project target framework configuration explicit for Debug and Release builds
- Arc (Release v20.24.16): Reflection binding
- Arc (Release v20.24.16):
ReadModelServiceCollectionExtensionsnow resolves the generic single-parameterIReadModels.Release<T>(T)method instead of the removed two-parameter overload. - Arc (Release v20.24.16): Read model resolution flow
- Arc (Release v20.24.16):
ResolveReadModelnow keeps subject-based branching and only invokes release whencommandContext.GetSubject()is present. - Arc (Release v20.24.16): The release invocation uses the new Chronicle-compatible method shape (
Release<T>(T)). - Arc (Release v20.24.16): Spec expectations
- Arc (Release v20.24.16): Updated read model resolution specs to assert single-parameter release calls where subject is present.
- Arc (Release v20.24.16): Restored the no-subject behavior to return the loaded read model without invoking release.
- Arc (Release v20.24.15): Reflection binding
- Arc (Release v20.24.15):
ReadModelServiceCollectionExtensionsnow resolves the generic single-parameterIReadModels.Release<T>(T)method instead of the removed two-parameter overload. - Arc (Release v20.24.15): Read model resolution flow
- Arc (Release v20.24.15):
ResolveReadModelnow keeps subject-based branching and only invokes release whencommandContext.GetSubject()is present. - Arc (Release v20.24.15): The release invocation uses the new Chronicle-compatible method shape (
Release<T>(T)). - Arc (Release v20.24.15): Spec expectations
- Arc (Release v20.24.15): Updated read model resolution specs to assert single-parameter release calls where subject is present.
- Arc (Release v20.24.15): Restored the no-subject behavior to return the loaded read model without invoking release.
- Fundamentals (Release v7.9.18):
TryAddGeneratedBindingsByConvention()now primes generated discovery providers before enumeratingGeneratedTypeDiscoveryRegistry.Providers. - Fundamentals (Release v7.9.18):
TryAddGeneratedSelfBindings()now uses the same priming flow to avoid the same order-dependent miss. - Fundamentals (Release v7.9.18): Assembly traversal runs transitively from loaded/entry references and safely ignores non-loadable/non-managed assemblies.
- Fundamentals (Release v7.9.17):
TryAddGeneratedBindingsByConvention()now primes generated discovery providers before enumeratingGeneratedTypeDiscoveryRegistry.Providers. - Fundamentals (Release v7.9.17):
TryAddGeneratedSelfBindings()now uses the same priming flow to avoid the same order-dependent miss. - Fundamentals (Release v7.9.17): Assembly traversal runs transitively from loaded/entry references and safely ignores non-loadable/non-managed assemblies.
- Arc (Release v20.24.14): Reflection binding
- Arc (Release v20.24.14):
ReadModelServiceCollectionExtensionsnow resolves the generic single-parameterIReadModels.Release<T>(T)method instead of the removed two-parameter overload. - Arc (Release v20.24.14): Read model resolution flow
- Arc (Release v20.24.14):
ResolveReadModelnow keeps subject-based branching and only invokes release whencommandContext.GetSubject()is present. - Arc (Release v20.24.14): The release invocation uses the new Chronicle-compatible method shape (
Release<T>(T)). - Arc (Release v20.24.14): Spec expectations
- Arc (Release v20.24.14): Updated read model resolution specs to assert single-parameter release calls where subject is present.
- Arc (Release v20.24.14): Restored the no-subject behavior to return the loaded read model without invoking release.
- Arc (Release v20.24.8): Changed
MongoDBOptions.DirectConnectionfrombooltobool?to distinguish “unset” from explicit override (#3284) - Arc (Release v20.24.8): Updated option documentation to clarify that an unset option preserves connection-string behavior (#3284)
- Chronicle (Release v15.30.0):
AppendResultandAppendManyResultnow expose observer wait context throughIAppendResultForObserverCompletionfor direct use by the wait extension method (#1845) - Chronicle (Release v15.30.0): Append result handling now consistently reports operation tail sequence numbers for completion waits (
SequenceNumbervs lastSequenceNumbersitem) (#1845) - Chronicle (Release v15.30.0): Observer-completion waiting now scopes failed-partition retrieval to affected observers to reduce unnecessary data reads (#1845)
- Arc (Release v20.24.6): Updated
ChronicleCommandScenarioExtenderto registerIReadModelsand callAddReadModels(...)with Chronicle client artifacts so ReadModel dependencies are convention-resolved in command scenarios. (#2212) - Arc (Release v20.24.6): Updated multiple spec helper types/accessibility and related test scaffolding to align with current type discovery generator behavior. (#2212)
- Arc (Release v20.24.6): Updated build-tooling project settings to suppress TFM support build warnings required for multi-target Release builds. (#2212)
- Arc (Release v20.24.6): Updated Chronicle testing documentation to describe direct ReadModel dependency support and test-time
IReadModelsoverrides. (#2212) - Arc (Release v20.24.6): Rebased the branch onto latest
mainand resolved resulting merge conflicts in package/version and MongoDB spec helper files while preserving intended behavior. (#2212) - Chronicle (Release v15.29.8): Wrapped connection attempts in try-catch to handle exceptions gracefully.
- Chronicle (Release v15.29.8): Implemented a rollback mechanism for connection state if handler exceptions occur.
- Chronicle (Release v15.29.7):
WithMongoDBnow builds sharedMongoClientSettingsfrom the configured connection string and reuses them for: - Chronicle (Release v15.29.7): Orleans
UseMongoDBClient - Chronicle (Release v15.29.7): MongoDB health check client creation
- Chronicle (Release v15.29.7): This aligns Orleans and health-check behavior with the existing Chronicle storage direct-connection behavior.
- Chronicle (Release v15.29.6): Updated the Docker get-started MongoDB Compose example to use
Cratis__Chronicle__Storage__ConnectionDetails=mongodb://mongodb:27017/?directConnection=true. - Chronicle (Release v15.29.6): Updated replica set initialization guidance to advertise
localhost:27017and documented why this works for host access and Chronicle-in-container access. - Chronicle (Release v15.29.6): Added guidance to reset volumes (
docker compose down -v) when reinitializing a replica set previously created with a different host. - Chronicle (Release v15.29.5): Startup now reactivates persisted reducer and reactor observers with stored observer state so they reconcile their running state without waiting for a client connection (#1751)
- Chronicle (Release v15.29.4): Normalized optional metadata fields before projection definition comparison:
- Chronicle (Release v15.29.4):
Tags: normalize ordering and treat empty as unset. - Chronicle (Release v15.29.4):
Nested: treat empty as unset. - Chronicle (Release v15.29.4): Kept structural comparison behavior unchanged for real definition differences.
- 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.
- Arc (Release v20.26.19): Upgrading Chronicle with fixes for .NET8/9/10 differentiation on versions for some
Microsoft.Extensions.*packages - Arc (Release v20.26.16):
Cratis.dllno longer leakstypeof()references to the build-timeProxyGenerator.Buildhelper, which causedFileNotFoundExceptionat runtime in consuming applications. - Arc (Release v20.26.15):
Cratis.dllno longer leakstypeof()references to the build-timeProxyGenerator.Buildhelper, which causedFileNotFoundExceptionat runtime in consuming applications. - Arc (Release v20.26.14): Observable queries no longer drop
paginginformation from result payloads when the underlying observable emits from a thread that the request-scopedQueryContextAsyncLocal does not flow into (notably the MongoDB change-stream thread). - Arc (Release v20.26.13): Observable queries no longer drop
paginginformation from result payloads when the underlying observable emits from a thread that the request-scopedQueryContextAsyncLocal does not flow into (notably the MongoDB change-stream thread). - Fundamentals (Release v7.10.3): Type discovery no longer emits
typeof()references for assemblies loaded from a NuGet package’stasks/(MSBuild task helpers such asCratis.Arc.ProxyGenerator.Build) oranalyzers/folder. Previously, generatedSelfBindingswould throwFileNotFoundExceptionat runtime because those DLLs are not copied to the consuming project’s output. - Fundamentals (Release v7.10.2):
CS1705raised in downstream consumers targetingnet8.0ornet9.0because the produced Cratis.Fundamentals assemblies referencedMicrosoft.Extensions.DependencyInjection.Abstractions10.x for every target framework.Microsoft.Extensions.DependencyInjection,Microsoft.Extensions.DependencyInjection.Abstractions, andMicrosoft.Extensions.DependencyModelare now pinned per TFM (8.0.x fornet8.0, 9.0.13 fornet9.0, 10.0.8 fornet10.0). - Arc (Release v20.26.12): Observable queries no longer drop
paginginformation from result payloads when the underlying observable emits from a thread that the request-scopedQueryContextAsyncLocal does not flow into (notably the MongoDB change-stream thread). - Chronicle (Release v15.31.0):
EventRedacteddeserialization now tolerates original event types that are no longer registered on the client. (#1779) - Chronicle (Release v15.31.0): Disposing a
ChronicleClientnow cancels its owned connection so it does not keep reconnecting during shutdown. (#3140) - Chronicle (Release v15.31.0): In-memory read model scenarios now preserve identifier mapping from event source IDs and handle repeated use of the same event type across nested mappings more reliably. (#815)
- Fundamentals (Release v7.10.0): The gap where trace instrumentation required direct
System.Diagnosticsprimitives in application code - Fundamentals (Release v7.10.0): The failure mode where span scopes could be created without
using, leaving activities unstopped and parent-child chains incomplete - Fundamentals (Release v7.10.0): Missing validation coverage for trace generator diagnostics and analyzer failure modes
- Fundamentals (Release v7.10.0): Repository markdown lint violations surfaced while adding the new trace documentation
- Narrator (Release v1.0.8): Publish to the VSCode Marketplace no longer fails with
Extension failed Virus check. The previous.vscodeignoreleft.yarn/cache/(one zip per dependency, ~400 files) and other dev artifacts in the packaged VSIX, which the Marketplace virus scanner flagged. The ignore file now keeps only the bundled runtime — the VSIX drops from 412 entries to 5 (≈189 KB). - Arc (Release v20.26.0): Fixed radio field binding inference and wrapper keying so radio values are typed correctly and multiple radio inputs can bind without key collisions (#2228)
- Arc (Release v20.26.0): Fixed Arc.React CI regressions in
useChangeStream/command-related specs caused by shared test state and render-phase update warnings (#2227) - Arc (Release v20.26.0): Fixed scoped messenger propagation semantics to default to local publish + recursive trickle-down with explicit opt-in bubbling to parent scopes (#2231)
- Arc (Release v20.25.0): Fixed radio field binding inference and wrapper keying so radio values are typed correctly and multiple radio inputs can bind without key collisions (#2228)
- Arc (Release v20.25.0): Fixed Arc.React CI regressions in
useChangeStream/command-related specs caused by shared test state and render-phase update warnings (#2227) - Arc (Release v20.25.0): Fixed scoped messenger propagation semantics to default to local publish + recursive trickle-down with explicit opt-in bubbling to parent scopes (#2231)
- Narrator (Release v1.0.0): Sequence browsing under a namespace no longer shows “Sequence browsing requires an event source ID” — actual sequence leaves are surfaced and openable.
- Chronicle (Release v15.30.2): Eliminates decode failures in TypeScript/Node clients caused by
forceLong=numbersafe-integer limits when receiving sentinel or other largeuint64values. - Arc (Release v20.24.27): Restored transitive proxy generation behavior for projects that rely on
<PackageReference Include="Cratis" />+CratisProxiesOutputPathwithout an explicitCratis.Arc.ProxyGenerator.Buildreference (#2225) - Arc (Release v20.24.27): Fixed intermittent CI failures in
for_CommandScenario.when_handler_takes_read_model_dependency.and_command_is_executedcaused by cross-test read-model registration ordering inChronicle.Specs(#2225) - Arc (Release v20.24.27): Fixed false regression CI failures caused by
.NET Buildjobs testingorigin/maininstead of the PR changes inpull_request_targetexecutions (#2225) - Arc (Release v20.24.26): Restored transitive proxy generation behavior for projects that rely on
<PackageReference Include="Cratis" />+CratisProxiesOutputPathwithout an explicitCratis.Arc.ProxyGenerator.Buildreference (#2225) - Arc (Release v20.24.26): Fixed intermittent CI failures in
for_CommandScenario.when_handler_takes_read_model_dependency.and_command_is_executedcaused by cross-test read-model registration ordering inChronicle.Specs(#2225) - Arc (Release v20.24.26): Fixed false regression CI failures caused by
.NET Buildjobs testingorigin/maininstead of the PR changes inpull_request_targetexecutions (#2225) - Arc (Release v20.24.25): Eliminated the static-constructor failure path (
Sequence contains no matching element) caused by looking up a removed Chronicle API overload. - Chronicle (Release v15.30.1):
Storage.MongoDBbuild errors (CS0266) caused byDirectConnectionchanging frombooltobool?afterCratis.Arc.MongoDBupgrade; comparisons updated to== true - Chronicle (Release v15.30.1):
Testing.Specsruntime assembly load failure; addedCratis.ArcandCratis.Arc.Corepackage references so generator-emitted Arc service bindings resolve at runtime - Chronicle (Release v15.30.1):
Aspire.csprojbuild error (ASPIREPROBES001) from generator-emittedIResourceWithProbescontract mapping against an evaluation-only Aspire API; suppressed viaNoWarn - Chronicle (Release v15.30.1):
Server.csprojbuild error (CS0436) from generator-emittedProgramself-binding conflicting with the importedCratis.Chronicle.Api.Program; suppressed viaNoWarn - Chronicle (Release v15.30.1): Server startup
InvalidOperationExceptioncaused by Arc 20.24.10+ auto-registering[Singleton]-annotatedStorage.Sqlclasses from all loaded assemblies, overriding the MongoDBIDatabaseregistration; removed[Singleton]from SQL-specific classes and added explicit registrations toSqlChronicleBuilderExtensions.WithSql - Chronicle (Release v15.30.1): Server startup
InvalidOperationExceptionin MongoDB mode caused byAddBindingsByConvention()also registering SQL storage implementations (e.g.EventSequenceMigrator) which requireITableMigrator<>— only available in SQL mode; added symmetric removal ofCratis.Chronicle.Storage.Sql.*service registrations in MongoDB mode inProgram.cs - Chronicle (Release v15.30.1): Integration test timeouts in
WaitTillReachesEventSequenceNumber(ProjectionWaitExtensions,ReducerWaitExtensions,ReactorWaitExtensions) caused by exact equality (==) check that never - Arc (Release v20.24.17): Eliminated the static-constructor failure path (
Sequence contains no matching element) caused by looking up a removed Chronicle API overload. - Arc (Release v20.24.17): Fixed the regression that caused a command-scenario spec to fail by preserving subject-gated release behavior.
- Fundamentals (Release v7.9.19): Prevented generated type-discovery metadata from referencing contracts that are only available through a non-global alias
- Fundamentals (Release v7.9.19): Fixed the root
dotnet test --configuration Releasebuild failure caused by theFundamentals.Specsmulti-targeted Release build referencing anet10.0-only probe project - Arc (Release v20.24.16): Eliminated the static-constructor failure path (
Sequence contains no matching element) caused by looking up a removed Chronicle API overload. - Arc (Release v20.24.16): Fixed the regression that caused a command-scenario spec to fail by preserving subject-gated release behavior.
- Arc (Release v20.24.15): Eliminated the static-constructor failure path (
Sequence contains no matching element) caused by looking up a removed Chronicle API overload. - Arc (Release v20.24.15): Fixed the regression that caused a command-scenario spec to fail by preserving subject-gated release behavior.
- Fundamentals (Release v7.9.18): Fixed order-dependent omission of convention bindings from referenced assemblies whose
[ModuleInitializer]had not yet fired at DI registration time. - Fundamentals (Release v7.9.18): Fixed equivalent gap for generated self-bindings.
- Fundamentals (Release v7.9.17): Fixed order-dependent omission of convention bindings from referenced assemblies whose
[ModuleInitializer]had not yet fired at DI registration time. - Fundamentals (Release v7.9.17): Fixed equivalent gap for generated self-bindings.
- Arc (Release v20.24.14): Eliminated the static-constructor failure path (
Sequence contains no matching element) caused by looking up a removed Chronicle API overload. - Arc (Release v20.24.14): Fixed the regression that caused a command-scenario spec to fail by preserving subject-gated release behavior.
- Arc (Release v20.24.13): ProxyGenerator no longer throws
NullReferenceExceptionwhen scanning read model types whose properties implement only the non-genericIEnumerable(withoutIEnumerable<T>). (#2221) - Arc (Release v20.24.12): ProxyGenerator no longer throws
NullReferenceExceptionwhen scanning read model types whose properties implement only the non-genericIEnumerable(withoutIEnumerable<T>). (#2221) - Arc (Release v20.24.11): ProxyGenerator no longer throws
NullReferenceExceptionwhen scanning read model types whose properties implement only the non-genericIEnumerable(withoutIEnumerable<T>). (#2221) - Arc (Release v20.24.10): Adding missing activation for the tenant resolver for Sub domains.
- Arc (Release v20.24.9): Adding missing activation for the tenant resolver for Sub domains.
- Arc (Release v20.24.8): Fixed
MongoDBClientFactory.CreateImplementationto stop clobberingMongoClientSettings.DirectConnectionand only force direct mode when options explicitly set it totrue(#3284) - Arc (Release v20.24.8): Eliminated the Arc-side regression path that could push startup-time Mongo clients back into replica-set discovery despite
directConnection=truein URL (#3287) - Chronicle (Release v15.30.0): Observer-completion waiting no longer exits on first failed partition; it now waits until affected observers are complete-or-failed and returns the complete failed-partition set for the operation (#1845)
- Chronicle (Release v15.30.0): Append and append-many operations now succeed in testing scenarios where observer services are unavailable, preventing spec regressions introduced by observer wait wiring (#1845)
- Arc (Release v20.24.6): Fixed parity gap where Chronicle command scenarios did not support direct ReadModel dependencies while runtime did. (#2212)
- Arc (Release v20.24.6): Fixed Release build failures tied to type discovery accessibility and generic discovery/build compatibility in the affected spec/test context. (#2212)
- Chronicle (Release v15.29.7): Fixed Orleans reminder connectivity failures against single-node replica sets advertising
localhost:27017when Chronicle connects via service DNS with?directConnection=true. - Chronicle (Release v15.29.6): Fixed MongoDB storage configuration so default
MongoDBOptions.DirectConnectionno longer overridesdirectConnection=truesupplied in the MongoDB connection string. - Arc (Release v20.24.4): Cratis NuGet package no longer leaks the build-tool assembly
Cratis.Arc.ProxyGenerator.Buildas a compile-time reference, fixing runtimeFileNotFoundExceptionin consumer apps where Fundamentals’ source-generatedGeneratedTypeDiscoveryProvider.SelfBindingsreferenced types from that assembly. - Chronicle (Release v15.29.5): Reducer and reactor observers no longer remain incorrectly active after startup when their previous state was persisted as active but no client is connected (#1751)
- Arc (Release v20.24.3): Cratis NuGet package no longer leaks the build-tool assembly
Cratis.Arc.ProxyGenerator.Buildas a compile-time reference, fixing runtimeFileNotFoundExceptionin consumer apps where Fundamentals’ source-generatedGeneratedTypeDiscoveryProvider.SelfBindingsreferenced types from that assembly. - Chronicle (Release v15.29.4): Prevented false-positive projection definition changes caused by storage/default serialization shape differences.
- Chronicle (Release v15.29.4): Reduced unnecessary replay/replay-recommendation triggers for projections whose effective definition did not change.
- Arc (Release v20.24.1): Command response value resolver for `EventForEventSourceId` was using a local version of this type — removing this and making it work with the Chronicle version.
- Arc (Release v20.24.1): TypeDiscovery generator CS0122 errors caused by `protected` nested types in spec context classes being emitted as contracts in generated code.
- Arc (Release v20.24.1): TypeDiscovery generator CS0246 error in `InMemoryFluentFind
.Cursor` caused by the generated typeof() expression including an unresolvable type parameter name. - Fundamentals (Release v7.9.16): TypeDiscovery generator no longer emits `protected` nested types as contracts — such types are inaccessible from generated code at namespace level (CS0122).
- Fundamentals (Release v7.9.16): TypeDiscovery generator no longer emits types nested inside a generic outer type — their fully-qualified name includes unresolvable type parameter names (CS0246).
- Chronicle (Release v15.29.3):
JsonSchemaGenerator.Generate()no longer crashes with aJsonExceptionwhen called on a record type that has non-primitive struct properties with default values (e.g.DateTimeOffset OccurredAt = default,Guid Id = default) under .NET 10.
Removed
Section titled “Removed”- Arc (Release v20.26.0): Removed MVVM-owned messenger runtime logic in favor of shared core messaging implementation/re-exports (#2231)
- Arc (Release v20.26.0): Removed the exposed version element from the public
useCommandtuple and generated command hook signatures (#2227) - Components (Release v1.10.2): Removed unused theme references and imports.
- Arc (Release v20.25.0): Removed MVVM-owned messenger runtime logic in favor of shared core messaging implementation/re-exports (#2231)
- Arc (Release v20.25.0): Removed the exposed version element from the public
useCommandtuple and generated command hook signatures (#2227) - Narrator (Release v1.0.0):
ProtoPatches.tsand its activation. The runtime monkey-patch that clampedBinaryReader.prototype.{uint64, int64, sint64, fixed64, sfixed64}to dodge the ts-protolongToNumberthrow is no longer needed —@cratis/chronicle.contracts@15.30.2was generated withforceLong=bigintand decodes the sentinel cleanly. - Chronicle (Release v15.30.2): Removed the kernel-side sequence number saturation approach and related helper/converter changes.
- Chronicle (Release v15.30.2): Removed specs that only validated the reverted clamping behavior.
- Arc (Release v20.24.25): Obsolete reflection lookup and invocation path for
Release<T>(Subject, T). - Arc (Release v20.24.25): Subject-specific release invocation through reflection using the removed overload.
Security
Section titled “Security”- Fundamentals (Release v7.10.0): Compile-time enforcement for disposing generated activity scopes, reducing the risk of broken trace lifetimes and incomplete span trees
- Arc (Release v20.24.27): No security model changes; this PR restores package dependency propagation behavior, stabilizes test setup behavior, and corrects workflow checkout targeting in CI (#2225)
- Arc (Release v20.24.26): No security model changes; this PR restores package dependency propagation behavior, stabilizes test setup behavior, and corrects workflow checkout targeting in CI (#2225)
- Arc (Release v20.24.25): No direct security behavior change; this is an API-compatibility and startup-stability fix.
- Arc (Release v20.24.6): No security-specific changes. (#2212)
Deprecated
Section titled “Deprecated”- No updates