|
| 1 | +# @typeonce/effect-machine |
| 2 | + |
| 3 | +## 0.2.0 |
| 4 | + |
| 5 | +### Minor Changes |
| 6 | + |
| 7 | +- 1a4a68f: Separate public commands from machine-local events with typed `events` and |
| 8 | + `internalEvents` protocols, unique-tag validation, and public-schema validation |
| 9 | + for Cluster delivery. |
| 10 | + |
| 11 | + Move finality entirely into state definitions. This is a breaking API change: |
| 12 | + remove `type: "final"` from handlers and declare final states and output schemas |
| 13 | + with `Machine.defineStates`. Handler `context.action` is also removed in favor |
| 14 | + of the single canonical `Machine.action` staging API. Planning and execution |
| 15 | + now require an output implementation for every declared output schema and |
| 16 | + expose discriminated, schema-derived terminal results. |
| 17 | + |
| 18 | + Add typed helpers for one-shot Effects, timers, staged actions with a returned |
| 19 | + transition value, state retagging, immediate parents, and identity-safe invoked |
| 20 | + child addressing. Add bound Atom runtime factories, fail-aware results, |
| 21 | + equality-aware selectors, and reactive child bridges, while tightening startup |
| 22 | + and protocol error types. Protocol schemas are owned by each machine and rely |
| 23 | + on Effect's schema parser memoization instead of package-level cache registries. |
| 24 | + Reactive child bridge identity uses Effect's standard `Atom.family` primitive. |
| 25 | + Atom selectors now infer exact state paths and values from their bridge snapshot |
| 26 | + and no longer require a separate `DefinedStates` argument. |
| 27 | + |
| 28 | + Match child descriptors by id and machine identity, and split the old overloaded |
| 29 | + child constructor: |
| 30 | + use `Machine.child(id, machine)` for complete statecharts and |
| 31 | + `Machine.childAddress<Event>(id)` for lower-level process addresses. |
| 32 | + `Machine.invoke` now separates its lifecycle `id` from an explicit typed |
| 33 | + `address`. Remove the direct `AtomMachine.make(runtime, machine)` overload in |
| 34 | + favor of `AtomMachine.bind(runtime).make(machine)`, and make the default child |
| 35 | + Atom startup-error channel `unknown`. |
0 commit comments