CHANGELOG.md

# Change Log

All notable changes to this project will be documented in this file.
See [Conventional Commits](Https://conventionalcommits.org) for commit guidelines.

<!-- changelog -->

## [v0.2.11](https://github.com/ash-project/ash_state_machine/compare/v0.2.10...v0.2.11) (2025-05-15)




### Bug Fixes:

* use atomic error instead of modifying changeset for no such state

## [v0.2.10](https://github.com/ash-project/ash_state_machine/compare/v0.2.9...v0.2.10) (2025-05-01)




### Bug Fixes:

* use atomic error instead of modifying changeset for no such state

## [v0.2.9](https://github.com/ash-project/ash_state_machine/compare/v0.2.8...v0.2.9) (2025-04-09)




### Improvements:

* set the default_initial_state from initial_states if possible (#101)

* add igniter installer (#100)

## [v0.2.8](https://github.com/ash-project/ash_state_machine/compare/v0.2.7...v0.2.8) (2025-03-03)




### Bug Fixes:

* Add String.to_existing_atom casting to builtin change (#89)

* support transitioning state to a string

* handle `nil` target state in `no_matching_event` error

### Improvements:

* upgrade ash for atomic condition fixes

## [v0.2.7](https://github.com/ash-project/ash_state_machine/compare/v0.2.6...v0.2.7) (2024-11-26)

### Improvements:

- Allow create upsert actions in state transitions (#71)

## [v0.2.6](https://github.com/ash-project/ash_state_machine/compare/v0.2.5...v0.2.6) (2024-08-31)

### Bug Fixes:

- don't return tuple from `valid_next_state`

## [v0.2.5](https://github.com/ash-project/ash_state_machine/compare/v0.2.4...v0.2.5) (2024-07-13)

### Improvements:

- simplify atomic state transition with new ash feature

## [v0.2.4](https://github.com/ash-project/ash_state_machine/compare/v0.2.3...v0.2.4) (2024-06-17)

### Bug Fixes:

- support accepting the `:state` attribute

## [v0.2.3](https://github.com/ash-project/ash_state_machine/compare/v0.2.3-rc.1...v0.2.3) (2024-05-10)

## [v0.2.3-rc.1](https://github.com/ash-project/ash_state_machine/compare/v0.2.3-rc.0...v0.2.3-rc.1) (2024-05-04)

### Improvements:

- policy for including state machine in `can?` checks

- optimize atomic state transition check

- add atomic implementation

## [v0.2.3-rc.0](https://github.com/ash-project/ash_state_machine/compare/v0.2.2...v0.2.3-rc.0) (2024-03-29)

### Improvements:

- update to Ash 3.0

## [v0.2.2](https://github.com/ash-project/ash_state_machine/compare/v0.2.1...v0.2.2) (2023-09-15)

### Bug Fixes:

- scrub `:*` from the list of states

- proper entity path in replace logic

### Improvements:

- Add `possible_next_states` helper. (#9)

- Add `possible_next_states` helper.

- detect states used that don't exist and log an error

## [v0.2.1](https://github.com/ash-project/ash_state_machine/compare/v0.2.0...v0.2.1) (2023-09-08)

### Bug Fixes:

- Allow `next_state` to to match transitions from \*. (#7)

## [v0.2.0](https://github.com/ash-project/ash_state_machine/compare/v0.1.5...v0.2.0) (2023-09-08)

### Features:

- Add `next_state` builtin change. (#6)

### Improvements:

- exclude star from state_machine_all_states/1 to avoid inclusion in add_attribuet builder (#4)

## [v0.1.5](https://github.com/ash-project/ash_state_machine/compare/v0.1.4...v0.1.5) (2023-08-04)

### Improvements:

- support :\* in states

## [v0.1.4](https://github.com/ash-project/ash_state_machine/compare/v0.1.3...v0.1.4) (2023-05-03)

### Bug Fixes:

- Rename `from` to `old_state` in `NoMatchingTransition` error (#3)

## [v0.1.3](https://github.com/ash-project/ash_state_machine/compare/v0.1.2...v0.1.3) (2023-04-28)

### Bug Fixes:

- == not != for checking all states

## [v0.1.2](https://github.com/ash-project/ash_state_machine/compare/v0.1.1...v0.1.2) (2023-04-28)

## [v0.1.1](https://github.com/ash-project/ash_state_machine/compare/v0.1.0...v0.1.1) (2023-04-23)

### Improvements:

- make state diagrams the default chart

## [v0.1.0](https://github.com/ash-project/ash_state_machine/compare/v0.1.0...v0.1.0) (2023-04-23)

### Features:

- add mix task `ash_state_machine.generate_flow_charts` (#1)

### Bug Fixes:

- action does not uniquely identify a transition

- require `allow_nil? false` on state attribute

### Improvements:

- require `initial_states`

- fix lint/credo, handle all changeset types

- require from/to

- flow chart generation

- support `:*` as a transition action name to match all