Skip to content

Release digest for week of 2026-06-22 to 2026-06-29

  • Arc (Release v20.48.0): Command scenario tests can seed the read model state a command observes from events — Given.ForEventSource(id).Events(...) materializes any read model the command injects for that source through its own reducer or projection, with no read model type named.
  • Arc (Release v20.48.0): Command scenario tests can pin a read model instance directly for a command with Given.ForEventSource(id).ReadModel(instance).
  • Arc (Release v20.47.1): Read models with JsonObject properties can now be persisted and queried through Arc.MongoDB without falling back to broken dictionary serialization.
  • No updates
  • Chronicle (Release v15.35.8): ReadModelScenario now reflects a root-level removal: a class-level [RemovedWith] (and [ClearWith] on a [Nested]) makes Instance resolve to null instead of returning the stale pre-removal state.
  • Chronicle (Release v15.35.8): ReadModelScenario now seeds reducer-backed read models with the provided initial state instead of always starting the reducer from null.
  • Chronicle (Release v15.35.8): ReadModelScenario now surfaces a failing reducer (throwing ReducerFailed) instead of returning the reducer’s partial state as a successful result.
  • Chronicle (Release v15.35.8): ReadModelScenario now assigns increasing per-event sequence numbers to a reducer’s EventContext instead of the first sequence number for every event.
  • Chronicle (Release v15.35.7): Read models with a [PII] member inside a [ChildrenFrom] / list child collection no longer stop projecting after a child is added and a later event changes an unrelated field.
  • Chronicle (Release v15.35.7): Reducer read models with [PII] applied to a whole list nested in a child collection no longer fail to release their stored state on subsequent reduces.
  • Chronicle (Release v15.35.7): Observable (live) read-model queries no longer occasionally miss updates when the projection changeset notifier is deactivated between a client subscribing and the next change.
  • Chronicle (Release v15.35.6): Reading or releasing a read model whose [ChildrenFrom] / list child elements carry [PII] no longer fails with Failed to release compliance metadata for property '...' (FormatException).
  • Chronicle (Release v15.35.5): SQLite-backed Chronicle no longer stalls under concurrent writes. Connections now use WAL journaling and a busy timeout, so simultaneous appends and projection/observer writes from multiple grains wait for the write lock instead of failing immediately with SQLITE_BUSY and stalling observer catch-up. Durability is preserved.
  • Chronicle (Release v15.35.4): Fix DeclarativeCodeGenerator to properly handle well-known expressions in RemovedWith code generation
  • Chronicle (Release v15.35.3): Fixed projections that set a complex read model property and encrypt a nested PII concept so storage sinks receive non-conflicting property changes.
  • No updates
  • Chronicle (Release v15.35.6): [PII] values inside read-model child collections and lists are now encrypted at rest, matching the encryption already applied to scalar PII properties — previously they were persisted in plaintext.
  • Chronicle (Release v15.35.2): [PII] values inside arrays and lists are now encrypted at rest per element — scalar concept lists (for example IReadOnlyList<Email>) and [PII] members of objects held in a list. Previously the compliance manager only descended into nested objects, so list-valued PII was never visited and was persisted in the clear.
  • No updates