Version Packages - #142
Merged
Merged
Conversation
github-actions
Bot
force-pushed
the
changeset-release/main
branch
4 times, most recently
from
August 19, 2026 10:11
59ea0e1 to
efbfa1f
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
August 19, 2026 10:43
efbfa1f to
4a769b0
Compare
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@typeonce/effect-machine@0.17.0
Minor Changes
600149b: Make owning-machine requirements explicit and statically safe. Declare
parent: Machine.parent(ParentEvents)for a child-only machine; its behavior receives a non-optionalparent, compatible owners are checked when the child is invoked, and independent root APIs reject the machine.Replace
parentEvents: ParentEventswithparent: Machine.optionalParent(ParentEvents)when the same machine must remain valid as either a root or a child. Optional declarations retain the previousparent | undefinedbehavior. Machines without a parent declaration no longer exposeparentin schema-first behavior contexts.a5c910a: Make definition-time topology instructions immutable values. Use
to.none, declared.initialand history properties, andto.local.withwithout an empty call; state and choice destinations such asto.full.Running()remain callable.Author machine startup through the same target-first grammar:
initial: (to) => to.Flow.initial.resolve(...). The selector is captured once and its resolver remains lazy until initial planning.Remove
Machine.targetlessand the{ target: Machine.targetless, resolve }shorthand. Use(to) => to.noneor(to) => to.none.resolve(...); block-bodied targetless resolvers may omit an explicitreturn undefined.64f4e36: Replace
Machine.transition(...)with fluent transition selectors supplied directly to inline handlers. Select a target and optionally attach its resolver, reentry, or named branches without an intermediate wrapper:Use
.reenter()for resolver-free reentry, or pass literaldeclinable: trueto.resolve(...)when the resolver must receivedecline(). Bare targets are accepted only when their schemas support default construction.Remove the machine-definition
.invoke(...)method. UseMachine.invoke(...)in every state; it now retains the owning state, event, parent-event, output, error, element, snapshot, and service inference directly insidehandle(...).752a0b2: Add opt-in declinable transitions for conditional statechart dispatch.
Set
declinable: trueonMachine.transitionto expose a typeddecline()resolver capability. Declining selects no transition, discards operations enqueued by that resolver, and lets hierarchical event or eventless dispatch continue with the next eligible ancestor.target.none()remains handled and continues to consume the trigger.Declining a completion or invocation outcome ignores that lifecycle occurrence because those triggers do not dispatch to ancestor handlers.
Static transition definitions now expose
acceptance: "required" | "declinable"alongside their exact target branches. Choices and initial routing remain total and reject declinable transitions.Patch Changes
AtomMachineselectors so machines and invoked children with declared emitted events retain typed state selection and matching aftermakeorbind.