Release digest: June 22 - 29, 2026 (Week 26)
- 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
JsonObjectproperties can now be persisted and queried through Arc.MongoDB without falling back to broken dictionary serialization.
Changed
Section titled “Changed”- No updates
- Chronicle (Release v15.35.8):
ReadModelScenarionow reflects a root-level removal: a class-level[RemovedWith](and[ClearWith]on a[Nested]) makesInstanceresolve tonullinstead of returning the stale pre-removal state. - Chronicle (Release v15.35.8):
ReadModelScenarionow seeds reducer-backed read models with the provided initial state instead of always starting the reducer fromnull. - Chronicle (Release v15.35.8):
ReadModelScenarionow surfaces a failing reducer (throwingReducerFailed) instead of returning the reducer’s partial state as a successful result. - Chronicle (Release v15.35.8):
ReadModelScenarionow assigns increasing per-event sequence numbers to a reducer’sEventContextinstead 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 withFailed 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_BUSYand 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.
Removed
Section titled “Removed”- No updates
Security
Section titled “Security”- 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 exampleIReadOnlyList<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.
Deprecated
Section titled “Deprecated”- No updates