Skip to content

Tags: open-ships/statemachine

Tags

v1.4.2

Toggle v1.4.2's commit message
Release v1.4.2

v1.4.1

Toggle v1.4.1's commit message
Release v1.4.1

v1.4.0

Toggle v1.4.0's commit message
Release v1.4.0

v1.3.2

Toggle v1.3.2's commit message
Release v1.3.2

v1.3.1

Toggle v1.3.1's commit message
Release v1.3.1

v1.3.0

Toggle v1.3.0's commit message
Release v1.3.0

v1.2.1

Toggle v1.2.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request #3 from open-ships/feat/supervised-execution

Add supervised safety-adjacent execution

v1.2.0

Toggle v1.2.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request #2 from open-ships/feat/state-observation

Add state observation and inspection

v1.1.0

Toggle v1.1.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request #1 from open-ships/feat/stateful-execution

Add stateful execution modules

v1.0.0

Toggle v1.0.0's commit message
Add the statemachine package, tests, docs, and CI

The library is a transition table compiled once and applied to state the
caller owns: Compile/MustCompile, Fire, Permitted, and ErrNotPermitted.
The machine holds no current state, which is what removes the need for
an internal mutex, observer registry, or deferred-transition protocol.

Requires Go 1.26, which keeps Permitted allocation-free: through 1.25 the
iter.Seq2 it returns escaped to the heap at 88 B and 3 allocations per
call, and escape analysis in 1.26 keeps it on the stack.

CI matches the pattern in teleop and n2k: a three-OS matrix on 1.26.x,
with the source-property checks on Linux only, and a release workflow
that tags from VERSION after a successful CI run on main.