Skip to main content

0.70 — Named rows beside a row set, state wire spellings, and replays that finish

· 3 min read
0.70 — Named rows beside a row set, state wire spellings, and replays that finish | ESS0.70.0 adds source format ess/32: one command may guard on rows its input names beside a row-set guard, a struct may declare no fields, and a lifecycle state may declare its wire spelling.ESSfield-noteessfield-noteadopterdevelopertry-spec-driven-developmentresearch

Source-owned field note · website/blog/2026-10-26-2000-named-rows-beside-a-row-set.md · revision b89faaa411bd

0.70.0 is a feature release. It adds the source format ess/32 and the suite formats ess-conformance/58 and /59. A model below ess/32 keeps its meaning, its IR bytes and its compiled digest. The changelog lists every change since 0.63.0.

Rows the input names, beside a row set​

From ess/32 one command may guard on rows its input names, when_related: {via: input.<field>, …}, beside a row-set guard, when_related: {entity, where, …}. "Connect two ports that exist and face the right way, unless a wire already leaves the source" is one command. A missing named row answers first, then every refusal over a present named row or a row set in declaration order, then the accepting branches (#554).

More in ess/32​

  • A struct may declare fields: [], open or closed (#649).
  • A lifecycle state may declare its wire spelling, states: [{name: Indexing, wire: indexing}], and two variants of one enum spelled alike on the wire are refused (#639).

Conformance and generated code​

  • ess verify conform synthesize no longer stops with InvalidReplay at ess/26 and later.
  • A view may publish a Decimal, compared by value; such a suite is ess-conformance/58 or /59.
  • A create-or-update command beside a related-row refusal gets a scenario for every branch (#641).
  • The synthesized Rust server decodes published events and returns the events a call published.
  • A variant's code: names its generated identifier, and a dotted label such as call.started synthesizes (#662).
  • ess generate types --check compares what it would write with --out (#654).