v4.2.1
Released 2026-05-22 · GitHub release · CHANGELOG
Rust-target codegen fixes. No surface-syntax or wire-format changes; the other 16 backends are unaffected.
Highlights
- Typed lifecycle args (RFC-0025.1, #34/#35) — Rust
$>/<$enter/exit args now ride the typed per-stateStateContextinstead of a stringifiedVec<String>+parse::<T>(). Fixes silent default-on-parse-miss and the hard break on compound types (Vec<i64>: FromStr); includes start-state<$binding and decoratedpop$args. - Fixed
E0124collisions — a state named$Empty(the no-context sentinel is now__NoContext) and a state var sharing a name with a lifecycle/state param no longer emit duplicate Rust identifiers. - Validator E115 — state names beginning with the reserved
__prefix are rejected, guaranteeing user state names never collide with framec-synthesized identifiers on any backend.