Skip to content

Release v19.7.0

Choose a tag to compare

@github-actions github-actions released this 25 Sep 15:35
095ab46

Added

  • The event-store dashboard, built from projections with composite keys rather than counting rows on demand, with per-namespace figures and drill-down, and key figures under each event store on the landing page (#3731)
  • A declarative surface for kernel-owned projections - identified with a $system. prefix, owned by the kernel rather than a client, and refused by replay, because replaying one rebuilds state the kernel keeps for itself
  • ProjectionScope, so a read model can be built per namespace, once for the whole store, or both. A Both declaration lowers to two single-scope definitions, and a global one is keyed with the unset namespace
  • A statistics query surface over the new projections, and the Workbench screens that show it

Changed

  • The job system is now Cratis.Orleans rather than Chronicle's own. The local engine, its storage for MongoDB and SQL, and its specs are gone; what remains here are the job scenarios that are about Chronicle
  • Job storage is resolved through IJobsStorage. The kernel asked for the concrete MongoDB type, which the container satisfied by building a second, unconfigured instance - grains wrote to one database and the kernel read from another, and reading an always-empty database does not throw. Six integration specs asserted job steps were empty and passed for the wrong reason
  • The kernel names its own assemblies for BSON serializer registration. Adopting the package's registration silently dropped every serializer the kernel ships, including the one that upgrades constraint definitions written before 16.12
  • A development wipe tells the job system its database was emptied, so the tables it creates on resolution are made again
  • A replay specification no longer depends on catching a transient job. A replay job is removed the moment it completes, and two events against a fast database finish before the first poll looks; the replay is verified from the rebuilt read model and the absence of a recommendation instead

Fixed

  • Jobs could not be written on PostgreSQL at all: the state column is jsonb, which refuses an implicit cast from text. Starting a job still reported success because the failure was inside the grain's write, so the kernel believed it had started work that never existed - a failed partition was never retried, and a redaction's replay never ran (fixed in Cratis.Orleans 1.10.1)
  • The SQL job storage shipped a context it could not create tables for, and the MongoDB one never registered the conventions its own queries assumed, so writes and reads disagreed on casing (fixed in Cratis.Orleans 1.6.1)

Notes

Depends on Cratis.Orleans 1.10.1. Every defect found along the way was fixed in the package rather than worked around here, and each one carries a specification there: SQL storage now runs in a real silo and, when one is available, against a real PostgreSQL.