Skip to content

Commit 7fc7238

Browse files
Merge pull request #3 from typeonce-dev/changeset-release/main
Version Packages
2 parents 0744c2a + 97da825 commit 7fc7238

3 files changed

Lines changed: 36 additions & 34 deletions

File tree

.changeset/typed-statechart-protocols.md

Lines changed: 0 additions & 33 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
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`.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@typeonce/effect-machine",
3-
"version": "0.1.0",
3+
"version": "0.2.0",
44
"description": "Schema-first state machines and statecharts for Effect",
55
"author": "Sandro Maglione",
66
"repository": {

0 commit comments

Comments
 (0)