@typeonce/effect-machine 0.18.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/README.md +54 -16
  2. package/dist/Machine.d.ts +300 -30
  3. package/dist/Machine.d.ts.map +1 -1
  4. package/dist/Machine.js +10 -6
  5. package/dist/Machine.js.map +1 -1
  6. package/dist/internal/machine/cluster.d.ts +2 -2
  7. package/dist/internal/machine/cluster.d.ts.map +1 -1
  8. package/dist/internal/machine/cluster.js +2 -1
  9. package/dist/internal/machine/cluster.js.map +1 -1
  10. package/dist/internal/machine/serialization.d.ts.map +1 -1
  11. package/dist/internal/machine/serialization.js +75 -18
  12. package/dist/internal/machine/serialization.js.map +1 -1
  13. package/dist/internal/testing/machine/verification.d.ts +1 -1
  14. package/dist/internal/testing/machine/verification.d.ts.map +1 -1
  15. package/dist/internal/testing/machine/verification.js +9 -6
  16. package/dist/internal/testing/machine/verification.js.map +1 -1
  17. package/dist/testing/MachineTest.d.ts +9 -6
  18. package/dist/testing/MachineTest.d.ts.map +1 -1
  19. package/dist/testing/MachineTest.js +5 -3
  20. package/dist/testing/MachineTest.js.map +1 -1
  21. package/dist/unstable/cluster/ClusterMachine.d.ts +22 -2
  22. package/dist/unstable/cluster/ClusterMachine.d.ts.map +1 -1
  23. package/dist/unstable/cluster/ClusterMachine.js +4 -0
  24. package/dist/unstable/cluster/ClusterMachine.js.map +1 -1
  25. package/docs/agent-guide.md +84 -17
  26. package/package.json +4 -4
  27. package/src/Machine.ts +315 -33
  28. package/src/internal/machine/cluster.ts +4 -1
  29. package/src/internal/machine/serialization.ts +100 -25
  30. package/src/internal/testing/machine/verification.ts +15 -10
  31. package/src/testing/MachineTest.ts +9 -6
  32. package/src/unstable/cluster/ClusterMachine.ts +51 -1
@@ -1 +1 @@
1
- {"version":3,"file":"MachineTest.js","sourceRoot":"","sources":["../../src/testing/MachineTest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MachineTest.js","sourceRoot":"","sources":["../../src/testing/MachineTest.ts"],"names":[],"mappings":"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"}
@@ -133,7 +133,7 @@ export { Accepted };
133
133
  * @category models
134
134
  * @since 0.4.0
135
135
  */
136
- export declare const RejectionReason: Schema.Literals<readonly ["MachineIdMismatch", "VersionMismatch", "InvalidCheckpoint", "UnsupportedProcessLocal", "TransitionFailure", "PersistenceFailure", "EmissionFailure"]>;
136
+ export declare const RejectionReason: Schema.Literals<readonly ["MachineIdMismatch", "VersionMismatch", "InvalidCheckpoint", "UnsupportedProcessLocal", "TransitionFailure", "SnapshotEncodeFailure", "PersistenceFailure", "EmissionFailure"]>;
137
137
  /**
138
138
  * Type of {@link RejectionReason}.
139
139
  *
@@ -195,6 +195,23 @@ export interface ClusterMachine<in out Type extends string, in out M extends Mac
195
195
  }
196
196
  type MachineServices<M extends Machine.Machine.Any> = ExcludeCompatibleRuntime<Machine.ExecutionServices<Machine.Machine.Services<M> | Machine.Machine.InitialServices<M>>, Machine.Machine.Event<M>, Machine.Machine.Emit<M>> | Machine.Machine.SnapshotDecodingServices<Machine.Machine.States<M>> | Machine.Machine.SnapshotEncodingServices<Machine.Machine.States<M>>;
197
197
  type IsAny<A> = 0 extends (1 & A) ? true : false;
198
+ type IsNever<A> = [A] extends [never] ? true : false;
199
+ type IsUnknown<A> = IsAny<A> extends true ? false : unknown extends A ? true : false;
200
+ type IsJsonEncoded<S extends Schema.Top> = IsAny<S["Encoded"]> extends true ? false : IsNever<S["Encoded"]> extends true ? false : IsUnknown<S["Encoded"]> extends true ? false : [S["Encoded"]] extends [Schema.Json] ? true : false;
201
+ type NonJsonState<States extends Machine.Machine.StateSchemas> = Machine.Machine.ValuedStateIdentifier<States> extends infer StateId ? StateId extends Machine.Machine.ValuedStateIdentifier<States> ? IsJsonEncoded<Machine.Machine.SchemaByIdentifier<States, StateId>> extends true ? never : StateId : never : never;
202
+ type NonJsonOutput<States extends Machine.Machine.StateSchemas> = Machine.Machine.DeclaredOutputState<States> extends infer StateId ? StateId extends Machine.Machine.DeclaredOutputState<States> ? Machine.Machine.NodeByIdentifier<States, StateId> extends {
203
+ readonly output: infer Output extends Schema.Top;
204
+ } ? IsJsonEncoded<Output> extends true ? never : StateId : never : never : never;
205
+ type NonJsonInputEvent<Events extends ReadonlyArray<Machine.Machine.TaggedSchema>> = {
206
+ readonly [Index in keyof Events]: Events[Index] extends infer EventSchema extends Machine.Machine.TaggedSchema ? IsJsonEncoded<EventSchema> extends true ? never : Machine.Machine.TagOf<EventSchema> : never;
207
+ }[number];
208
+ type EnsureJsonEncoded<States extends Machine.Machine.StateSchemas, InputEvents extends ReadonlyArray<Machine.Machine.TaggedSchema>> = [NonJsonState<States> | NonJsonOutput<States> | NonJsonInputEvent<InputEvents>] extends [never] ? unknown : {
209
+ readonly "~effect/ClusterMachine/NonJsonEncoded": {
210
+ readonly states: NonJsonState<States>;
211
+ readonly outputs: NonJsonOutput<States>;
212
+ readonly inputEvents: NonJsonInputEvent<InputEvents>;
213
+ };
214
+ };
198
215
  type ExcludeCompatibleRuntime<Requirements, Events, Emits> = Requirements extends Machine.Runtime.Requirement<infer RequiredEvents, infer RequiredEmits> ? IsAny<Requirements> extends true ? Requirements : [RequiredEvents] extends [Events] ? [RequiredEmits] extends [Emits] ? never : Requirements : Requirements : Requirements;
199
216
  /**
200
217
  * Creates an in-memory Cluster machine checkpoint store.
@@ -243,6 +260,9 @@ export declare const layerMemory: Layer.Layer<Storage>;
243
260
  * rejected. Planning-time raised events remain part of the current macrostep.
244
261
  * Arbitrary action effects may run again after a crash before checkpoint
245
262
  * commit, so the bridge does not provide exactly-once external effects.
263
+ * State values, completion outputs, and public input events must declare
264
+ * JSON-compatible encoded representations. Local and internal event protocols
265
+ * remain unrestricted because they do not cross the Cluster boundary.
246
266
  *
247
267
  * **Example**
248
268
  *
@@ -268,7 +288,7 @@ export declare const layerMemory: Layer.Layer<Storage>;
268
288
  * @category constructors
269
289
  * @since 0.4.0
270
290
  */
271
- export declare const make: <const Type extends string, States extends Machine.Machine.StateSchemas, Events extends ReadonlyArray<Machine.Machine.TaggedSchema>, Input extends Schema.Top, UnhandledStates extends Machine.Machine.StateIdentifier<States>, E, R, InitialE, InitialR, FinalStates extends Machine.Machine.StateIdentifier<States>, Output, Emits extends ReadonlyArray<Machine.Machine.TaggedSchema>, OutputStates extends Machine.Machine.StateIdentifier<States>, InputEvents extends ReadonlyArray<Machine.Machine.TaggedSchema> = Events, ParentEvents extends ReadonlyArray<Machine.Machine.TaggedSchema> = readonly []>(type: Type, machine: Machine.Machine<States, Events, Input, UnhandledStates, E, R, InitialE, InitialR, FinalStates, Output, Emits, OutputStates, InputEvents, ParentEvents> & EnsureExecutable<States, UnhandledStates, OutputStates> & Machine.Machine.RootCompatible<ParentEvents>, options: {
291
+ export declare const make: <const Type extends string, States extends Machine.Machine.StateSchemas, Events extends ReadonlyArray<Machine.Machine.TaggedSchema>, Input extends Schema.Top, UnhandledStates extends Machine.Machine.StateIdentifier<States>, E, R, InitialE, InitialR, FinalStates extends Machine.Machine.StateIdentifier<States>, Output, Emits extends ReadonlyArray<Machine.Machine.TaggedSchema>, OutputStates extends Machine.Machine.StateIdentifier<States>, InputEvents extends ReadonlyArray<Machine.Machine.TaggedSchema> = Events, ParentEvents extends ReadonlyArray<Machine.Machine.TaggedSchema> = readonly []>(type: Type, machine: Machine.Machine<States, Events, Input, UnhandledStates, E, R, InitialE, InitialR, FinalStates, Output, Emits, OutputStates, InputEvents, ParentEvents> & EnsureExecutable<States, UnhandledStates, OutputStates> & Machine.Machine.RootCompatible<ParentEvents> & EnsureJsonEncoded<States, InputEvents>, options: {
272
292
  readonly version: string;
273
293
  }, ...input: [...Machine.Machine.InputArgs<Input>]) => ClusterMachine<Type, Machine.Machine<States, Events, Input, UnhandledStates, E, R, InitialE, InitialR, FinalStates, Output, Emits, OutputStates, InputEvents, ParentEvents>, ExcludeCompatibleRuntime<Machine.ExecutionServices<R | InitialR>, Machine.Machine.EventOf<Events>, Machine.Machine.EmitOf<Emits>> | Machine.Machine.SnapshotDecodingServices<States> | Machine.Machine.SnapshotEncodingServices<States>>;
274
294
  //# sourceMappingURL=ClusterMachine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClusterMachine.d.ts","sourceRoot":"","sources":["../../../src/unstable/cluster/ClusterMachine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClusterMachine.d.ts","sourceRoot":"","sources":["../../../src/unstable/cluster/ClusterMachine.ts"],"names":[],"mappings":"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"}
@@ -53,6 +53,7 @@ export const RejectionReason = Schema.Literals([
53
53
  "InvalidCheckpoint",
54
54
  "UnsupportedProcessLocal",
55
55
  "TransitionFailure",
56
+ "SnapshotEncodeFailure",
56
57
  "PersistenceFailure",
57
58
  "EmissionFailure"
58
59
  ]);
@@ -118,6 +119,9 @@ export const layerMemory = internal.layerMemory;
118
119
  * rejected. Planning-time raised events remain part of the current macrostep.
119
120
  * Arbitrary action effects may run again after a crash before checkpoint
120
121
  * commit, so the bridge does not provide exactly-once external effects.
122
+ * State values, completion outputs, and public input events must declare
123
+ * JSON-compatible encoded representations. Local and internal event protocols
124
+ * remain unrestricted because they do not cross the Cluster boundary.
121
125
  *
122
126
  * **Example**
123
127
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ClusterMachine.js","sourceRoot":"","sources":["../../../src/unstable/cluster/ClusterMachine.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,QAAQ,MAAM,mCAAmC,CAAA;AAC7D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AA4D/E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,SAAS,EAAE,GAA2B,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAChE,SAAS,EAAE,GAA2B,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;CACjE,CAAA;AA8BD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,OAAO,EAAE,CAAA;AAElB;;;;;;GAMG;AACH,OAAO,EAAE,QAAQ,EAAE,CAAA;AAEnB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC7C,mBAAmB;IACnB,iBAAiB;IACjB,mBAAmB;IACnB,yBAAyB;IACzB,mBAAmB;IACnB,oBAAoB;IACpB,iBAAiB;CAClB,CAAC,CAAA;AAUF;;;;;;GAMG;AACH,OAAO,EAAE,QAAQ,EAAE,CAAA;AAEnB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;AA0E5D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,UAAU,GAAsC,QAAQ,CAAC,UAAU,CAAA;AAEhF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAyB,QAAQ,CAAC,WAAW,CAAA;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAM,CAAC,MAAM,IAAI,GAkEb,QAAQ,CAAC,IAAI,CAAA"}
1
+ {"version":3,"file":"ClusterMachine.js","sourceRoot":"","sources":["../../../src/unstable/cluster/ClusterMachine.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,QAAQ,MAAM,mCAAmC,CAAA;AAC7D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AA4D/E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,SAAS,EAAE,GAA2B,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAChE,SAAS,EAAE,GAA2B,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;CACjE,CAAA;AA8BD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,OAAO,EAAE,CAAA;AAElB;;;;;;GAMG;AACH,OAAO,EAAE,QAAQ,EAAE,CAAA;AAEnB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC7C,mBAAmB;IACnB,iBAAiB;IACjB,mBAAmB;IACnB,yBAAyB;IACzB,mBAAmB;IACnB,uBAAuB;IACvB,oBAAoB;IACpB,iBAAiB;CAClB,CAAC,CAAA;AAUF;;;;;;GAMG;AACH,OAAO,EAAE,QAAQ,EAAE,CAAA;AAEnB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;AAuH5D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,UAAU,GAAsC,QAAQ,CAAC,UAAU,CAAA;AAEhF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAyB,QAAQ,CAAC,WAAW,CAAA;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,MAAM,CAAC,MAAM,IAAI,GAmEb,QAAQ,CAAC,IAAI,CAAA"}
@@ -54,12 +54,15 @@ testing, or simulation variant.
54
54
 
55
55
  ```ts
56
56
  const State = Schema.TaggedUnion({
57
- Idle: {},
58
57
  Saving: { draft: Draft },
59
58
  Failed: { message: Schema.String }
60
59
  })
61
60
 
62
- const States = Machine.states(State.cases)
61
+ const States = Machine.states({
62
+ Idle: {},
63
+ Saving: State.cases.Saving,
64
+ Failed: State.cases.Failed
65
+ })
63
66
  export const Event = Machine.events(
64
67
  Schema.TaggedUnion({
65
68
  Save: {}
@@ -140,6 +143,23 @@ its extra control is required:
140
143
 
141
144
  ## Atomic, compound, parallel, and history states
142
145
 
146
+ ### Topology is a validity boundary
147
+
148
+ Design the state tree so invalid domain situations cannot be constructed. A
149
+ parallel node is not merely a convenient grouping of related concepts: it
150
+ declares the Cartesian product of its regions. Every combination must be
151
+ meaningful in snapshots, explicit targets, decoding, and resume.
152
+
153
+ If a handler reads a sibling region to decide whether entering its target is
154
+ legal, treat that as a topology smell and try a compound hierarchy first. Do
155
+ not move the same invariant into a disabled UI control, redundant event field,
156
+ or invoked-service failure. Cross-region reads remain useful for coordinating
157
+ genuinely independent regions and for projecting snapshots into views.
158
+
159
+ Place an invoked Effect or resource-dependent state beneath the state that
160
+ guarantees the resource exists. Exiting the owner should structurally exit and
161
+ interrupt all dependent work.
162
+
143
163
  ### Inline topology by default; extract only repeated states
144
164
 
145
165
  Prefer writing the complete topology inline in `Machine.states`. A one-off
@@ -234,7 +254,8 @@ machine-bound forms over `.cases.Case.Type`, `typeof States.states`, or
234
254
  composing `Machine.Machine.States` with raw-tree path extractors.
235
255
 
236
256
  An active state does not need a schema unless it owns data. Omit `schema` for
237
- control-only atomic, compound, parallel, and final states:
257
+ control-only atomic, compound, parallel, and final states. In particular, use
258
+ `{}` instead of an empty tagged-union case or tagged class:
238
259
 
239
260
  ```ts
240
261
  const States = Machine.states({
@@ -258,11 +279,7 @@ in snapshots. They do not have a state value:
258
279
  ```ts
259
280
  Idle: {
260
281
  on: {
261
- Start: (to) =>
262
- to.full.Form.initial.resolve(({ state, target }) => {
263
- // state: undefined
264
- return target.from((form) => form.Editing.from())
265
- })
282
+ Start: (to) => to.full.Form.initial
266
283
  }
267
284
  }
268
285
 
@@ -277,6 +294,13 @@ also omitted from `ancestors`; an immediate structural containing state is
277
294
  typed as `undefined`. Add `schema` when a state begins to own data or needs runtime
278
295
  validation and persistence for that data.
279
296
 
297
+ Declare data-bearing states together with the named
298
+ `const State = Schema.TaggedUnion(...)` pattern, then reference `State.cases`
299
+ from the topology. This keeps the state value protocol visible and reusable.
300
+ Use a named `Schema.TaggedClass` instead when a standalone state benefits from
301
+ class identity. Do not bury one-off tagged schema declarations inside
302
+ `Machine.states`.
303
+
280
304
  Use an atomic state when no child phase can be active beneath it.
281
305
 
282
306
  Use a compound state when exactly one child phase is active. It must declare an
@@ -326,6 +350,11 @@ Every parallel region needs an active state in initial and full snapshot
326
350
  builders. The same rule applies when a local or branch target enters an
327
351
  inactive nested parallel state.
328
352
 
353
+ This is also a semantic product: `Online + Closed`, `Online + Open`,
354
+ `Offline + Closed`, and `Offline + Open` are all valid configurations in the
355
+ example above. If even one combination must be prevented for correctness, use
356
+ a compound hierarchy or redesign the regions.
357
+
329
358
  Use `type: "final"` for a terminal leaf in `Machine.states`. A final
330
359
  child completes its compound parent. Put `onDone` on that completed parent,
331
360
  never on the final leaf. The definition owns the output schema and the handler
@@ -343,7 +372,7 @@ const States = Machine.states({
343
372
  const machine = Machine.make({
344
373
  states: States.states,
345
374
  events: Machine.events(),
346
- initial: (to) => to.Done().resolve(({ target }) => target.from())
375
+ initial: (to) => to.Done()
347
376
  }).handle({
348
377
  Done: {
349
378
  output: () => "done"
@@ -363,6 +392,20 @@ with `.initial`. This is available on top-level state methods under
363
392
  Open: (to) => to.full.opened.initial.resolve(({ target }) => target.from({ teamId: "team-1" }))
364
393
  ```
365
394
 
395
+ Return the `.initial` transition directly when the selected state owns no data
396
+ and the transition has no commands to enqueue:
397
+
398
+ ```ts
399
+ Close: (to) => to.full.closed.initial
400
+ ```
401
+
402
+ Do not manually reconstruct the declared initial descendants at ordinary entry
403
+ transitions. Reserve explicit descendant builders for deliberately non-default
404
+ configurations and for replacing an already-active parallel root with one
405
+ complete canonical configuration. `Machine.make({ initial })` still constructs
406
+ the first complete snapshot through its initial selector; that selector
407
+ statically restricts a compound node to its declared initial child.
408
+
366
409
  The definition-time `.initial` property is a topology value. The exact
367
410
  resolver `target` is still a callable runtime builder.
368
411
 
@@ -440,11 +483,11 @@ checkout: {
440
483
  Target it without a value:
441
484
 
442
485
  ```ts
443
- Resume: (to) => to.history.checkout.exact.resolve(({ target }) => target())
486
+ Resume: (to) => to.history.checkout.exact
444
487
  ```
445
488
 
446
- Each declared history leaf is a topology value; the resolver's selected
447
- history builder remains callable to construct restoration evidence.
489
+ Each declared history leaf is a topology value and can be returned directly
490
+ when no resolver work is needed.
448
491
 
449
492
  Deep history restores the complete remembered subtree and its decoded values.
450
493
  Shallow history restores only parent and direct-child values. If the remembered
@@ -526,8 +569,11 @@ Refresh: (to) =>
526
569
  to.full.Ready().resolve(({ state, target }) => target.from({ value: state.value }), { reenter: true })
527
570
  ```
528
571
 
529
- When no resolver is needed, use the selected target directly and append
530
- `.reenter()` only when restart semantics are intentional:
572
+ When no resolver is needed and the selected builder supports zero-argument
573
+ construction, return the selected target directly. This applies the same
574
+ default construction as `target.from()`; the compiler rejects the shorthand
575
+ when state data or nested configuration is required. Append `.reenter()` only
576
+ when restart semantics are intentional:
531
577
 
532
578
  ```ts
533
579
  Finish: (to) => to.full.Done()
@@ -624,6 +670,11 @@ Use the existing `States.matches`, `States.get`, `States.getWithParents`, and
624
670
  selected in one microstep receive the same capture. Synchronous handlers use
625
671
  that captured value and cannot consult live runtime state later.
626
672
 
673
+ Before using a cross-region read to permit or reject a target, verify that all
674
+ combinations of the parallel regions are valid. If the check excludes an
675
+ invalid combination, move the invariant into a compound hierarchy. Observer,
676
+ view, diagnostic, and test queries do not have this concern.
677
+
627
678
  Do not expect `snapshot` in entry, exit, invoke, initializer, history-default,
628
679
  or choice contexts. Choice is an important soundness boundary: a startup or
629
680
  chained choice can run without a complete stable configuration containing the
@@ -901,7 +952,7 @@ const definition = Machine.make({
901
952
  states: States.states,
902
953
  events: Events,
903
954
  internalEvents: InternalEvents,
904
- initial: (to) => to.Idle().resolve(({ target }) => target.from())
955
+ initial: (to) => to.Idle()
905
956
  })
906
957
  ```
907
958
 
@@ -1069,7 +1120,7 @@ machine.handle({
1069
1120
  Waiting: {
1070
1121
  invoke: (from) =>
1071
1122
  from.timer("clear-status", "3 seconds")
1072
- .onDone((to) => to.full.Clear().resolve(({ target }) => target()))
1123
+ .onDone((to) => to.full.Clear())
1073
1124
  }
1074
1125
  })
1075
1126
  ```
@@ -1228,6 +1279,22 @@ const decoded = yield* Machine.decodeSnapshot(machine, encoded)
1228
1279
  const ref = yield* Machine.resume(machine, decoded)
1229
1280
  ```
1230
1281
 
1282
+ `Machine.Snapshot` is the decoded, process-local representation. It may retain
1283
+ `Schema.Class` instances and capabilities that cannot cross a JSON boundary.
1284
+ `Machine.EncodedSnapshot` is different: successful `encodeSnapshot` calls
1285
+ guarantee canonical `Schema.Json` for every active value, completion output,
1286
+ and history value. Schema codecs convert rich values such as `Date`, `bigint`,
1287
+ and `undefined` to their declared JSON forms. Cycles, functions, symbols, and
1288
+ opaque values without a JSON representation fail with the typed
1289
+ `MachineSchemaEncodeError`; they never become a later `JSON.stringify` defect.
1290
+
1291
+ Keep DOM nodes, open handles, services, and similar capabilities in an Effect
1292
+ service or UI adapter. Local events may carry those values when they stay inside
1293
+ one process. Cluster public input events, persisted state, and completion
1294
+ outputs are transport protocols and must instead declare JSON-compatible
1295
+ encoded forms; use an explicit transform or `Schema.toCodecJson` where the
1296
+ canonical codec is the intended wire contract.
1297
+
1231
1298
  Pass only a decoded `Machine.Snapshot` to `resume`; encoded or arbitrary
1232
1299
  transport data belongs at `decodeSnapshot`. Resumption validates and normalizes
1233
1300
  the logical snapshot again, then publishes it as the fresh runtime's first
@@ -1421,7 +1488,7 @@ reference model when correctness of the expected behavior matters.
1421
1488
  Select the initial root separately from constructing its value:
1422
1489
 
1423
1490
  ```ts
1424
- initial: (to) => to.Idle().resolve(({ target }) => target.from())
1491
+ initial: (to) => to.Idle()
1425
1492
  ```
1426
1493
 
1427
1494
  ### Invoked child expects events not accepted by the parent
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typeonce/effect-machine",
3
- "version": "0.18.0",
3
+ "version": "0.19.0",
4
4
  "description": "Schema-first state machines and statecharts for Effect",
5
5
  "author": "Sandro Maglione",
6
6
  "repository": {
@@ -46,14 +46,14 @@
46
46
  "provenance": true
47
47
  },
48
48
  "peerDependencies": {
49
- "effect": "4.0.0-rc.109"
49
+ "effect": "4.0.0-rc.110"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@changesets/cli": "2.31.0",
53
- "@effect/vitest": "4.0.0-rc.109",
53
+ "@effect/vitest": "4.0.0-rc.110",
54
54
  "@types/node": "25.7.0",
55
55
  "dprint": "0.55.2",
56
- "effect": "4.0.0-rc.109",
56
+ "effect": "4.0.0-rc.110",
57
57
  "pagefind": "1.5.2",
58
58
  "tinybench": "2.9.0",
59
59
  "tstyche": "7.2.1",