You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Decode schema-backed state constructions before an initial choice resolver reads containingState or ancestors.
Preserve encoded target values for normal entry planning while giving choice selection the same decoded state view as ordinary active-state entry.
Add public nested-state coverage and forced generic-versus-compiled invoke/retry lifecycle coverage.
Changeset
Added or updated for a library or package-metadata change
Not required because this PR does not change a publishable package
Patch changeset for @typeonce/effect-machine.
Validation
pnpm check
Automated type-performance measurement passed or was not required
Automated runtime- and memory-performance measurement passed or was not required
Focused validation: 43 choice and strategy-differential tests passed.
Runtime performance: local pnpm perf:runtime smoke passed; the PR workflow base-versus-PR comparison remains authoritative. Type-performance validation is not required because this change does not alter the public TypeScript API or inference.
Median of 5 independent benchmark processes on Intel(R) Xeon(R) 6973P-C with Node v24.19.0.
Pull request baseline
Scenario
Effect Machine
Plan counter transitions
168,096 transitions/s
Drain burst with terminal fence
553,840 increments/s
Drain burst with a change observer
509,978 increments/s
Lookup and send to one child
468,014 increments/s
Start and stop a machine
209,336 machines/s
Start and stop a parent with one child
58,197 families/s
Plan transitions through a compound state
148,912 transitions/s
Plan transitions through parallel regions
119,960 transitions/s
Drain burst through a compound state
436,118 events/s
Drain burst through two parallel regions
412,838 events/s
Drain a compound-state burst with a change observer
405,940 events/s
Process runtime reference points
Scenario
Effect Machine
Start and stop a raw generic process
38,971 processes/s
Start and stop a raw compiled process
90,835 processes/s
Memory profile
Effect Machine
Idle machine
1.7 KiB
Raw generic managed process
13.9 KiB
Raw compiled process
3.2 KiB
Two independent idle machines
3.3 KiB
Idle parent with one child
5.7 KiB
Parent with observed child registry
9.8 KiB
Parent with observed invoked child snapshots
6.3 KiB
Effect Machine change from base
Metric
Base
Base variability
PR
PR variability
Difference
Plan counter transitions
170,741 transitions/s
2.8% MAD
168,096 transitions/s
1.5% MAD
-1.5%
Drain burst with terminal fence
596,474 increments/s
9.0% MAD
553,840 increments/s
4.9% MAD
-7.1%
Drain burst with a change observer
545,473 increments/s
7.4% MAD
509,978 increments/s
4.4% MAD
-6.5%
Lookup and send to one child
497,357 increments/s
5.9% MAD
468,014 increments/s
3.6% MAD
-5.9%
Start and stop a machine
207,943 machines/s
1.8% MAD
209,336 machines/s
1.6% MAD
+0.7%
Start and stop a parent with one child
57,740 families/s
5.4% MAD
58,197 families/s
2.2% MAD
+0.8%
Plan transitions through a compound state
155,595 transitions/s
0.8% MAD
148,912 transitions/s
2.0% MAD
-4.3%
Plan transitions through parallel regions
124,769 transitions/s
0.9% MAD
119,960 transitions/s
2.3% MAD
-3.9%
Drain burst through a compound state
450,933 events/s
2.9% MAD
436,118 events/s
2.8% MAD
-3.3%
Drain burst through two parallel regions
435,682 events/s
2.5% MAD
412,838 events/s
2.5% MAD
-5.2%
Drain a compound-state burst with a change observer
421,284 events/s
2.8% MAD
405,940 events/s
1.1% MAD
-3.6%
Idle machine heap per unit
1.7 KiB
0.2% MAD
1.7 KiB
0.3% MAD
+0.1%
Raw generic managed process heap per unit
13.9 KiB
0.0% MAD
13.9 KiB
0.0% MAD
+0.0%
Raw compiled process heap per unit
3.2 KiB
0.3% MAD
3.2 KiB
0.2% MAD
-0.1%
Two independent idle machines heap per unit
3.3 KiB
0.0% MAD
3.3 KiB
0.0% MAD
-0.0%
Idle parent with one child heap per unit
5.7 KiB
0.0% MAD
5.7 KiB
0.0% MAD
0.0%
Parent with observed child registry heap per unit
9.8 KiB
0.0% MAD
9.8 KiB
0.0% MAD
-0.0%
Parent with observed invoked child snapshots heap per unit
6.3 KiB
0.1% MAD
6.3 KiB
0.1% MAD
+0.1%
Process runtime reference change from base
Metric
Base
Base variability
PR
PR variability
Difference
Start and stop a raw generic process
38,609 processes/s
1.5% MAD
38,971 processes/s
2.0% MAD
+0.9%
Start and stop a raw compiled process
92,064 processes/s
2.1% MAD
90,835 processes/s
2.6% MAD
-1.3%
Regression guard
No large, noise-adjusted throughput or heap regressions detected.
Versions and interpretation
Effect Machine: 0.31.1
Higher throughput is better; lower heap is better. Variability is the median absolute deviation across independent processes, relative to their median. Small differences on shared GitHub-hosted hardware remain informational; the required guard rejects only large changes beyond the measured noise allowance.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Changeset
Patch changeset for @typeonce/effect-machine.
Validation
Focused validation: 43 choice and strategy-differential tests passed.
Runtime performance: local pnpm perf:runtime smoke passed; the PR workflow base-versus-PR comparison remains authoritative. Type-performance validation is not required because this change does not alter the public TypeScript API or inference.