fix!: up-transitions no longer exit and re-enter the target ancestor
A transition whose target is already active (an ancestor of the innermost active state) now unwinds only the subtree strictly below the target. The target's entry/exit actions do not fire and its default() does not re-descend — you cannot re-enter a state you never left. The old behavior could loop infinitely when a child transitioned to its own parent. Self-transitions (target == innermost) and lateral transitions are unchanged. See spec §2.6 and tests §T2.8 / T2.8b / T2.8c. Also in this release: * Full workspace justfile (check, test, coverage, mutants, pre-release) * Unit tests covering all __private internals; `cargo mutants` now exits clean (38 caught, 178 unviable, 0 missed, 0 timeouts). * .config/nextest.toml with slow-timeout/terminate-after so hung tests fail fast rather than wedging cargo-mutants runs. BREAKING CHANGE: transition-to-ancestor semantics. Machines that relied on the old re-entry behavior of up-transitions will observe different exit/entry action sequences.
This commit is contained in:
12 files changed
+774
-32
No files matched your search
@@ -2,6 +2,13 @@
|
||||
/target
|
||||
**/target/
|
||||
|
||||
# Tooling output (coverage, mutation testing, profiling, mise cache)
|
||||
/coverage/
|
||||
/mutants.out/
|
||||
/mutants.out.old/
|
||||
mutation_history.json
|
||||
*.profraw
|
||||
|
||||
# Local Claude Code config (per-host overrides)
|
||||
.claude/settings.local.json
|
||||
|
||||
|
||||
Reference in new issue
Block a user