Skip to content

docs: align experiment step states with actual platform behavior - #198

Merged
ManuelGerding merged 1 commit into
mainfrom
docs/15296-step-state-semantics
Aug 6, 2026
Merged

docs: align experiment step states with actual platform behavior#198
ManuelGerding merged 1 commit into
mainfrom
docs/15296-step-state-semantics

Conversation

@ManuelGerding

Copy link
Copy Markdown
Member

The step state table on Run an Experiment → States described behavior the platform does not have, found while investigating ticket 15296.

What was wrong

  • RUNNING claimed the action is "currently executed on all targets". The platform marks a step RUNNING as soon as its first target execution starts (isAnyTargetRunning()). Requiring all targets would be wrong in practice — targets start at different times, and one stalled target would keep a step out of RUNNING indefinitely. COMPLETED genuinely is all-targets; that asymmetry is intentional and now stated.
  • CANCELED / SKIPPED left the boundary implicit, so a reader could not tell why a step that never ran was reported one way or the other.
  • FAILED listed only the failed-check cause, omitting that a step also fails when it has no matching targets anymore.

Changes

  • RUNNING: "on at least one target", with the reason.
  • CANCELED: "was running before" spelled out as at least one target execution having started.
  • FAILED: adds the no-matching-targets cause.
  • State Propagation: adds the invariant — a step is only CANCELED if at least one target execution was RUNNING; if none started, the step and all its target executions are SKIPPED, even if the action had already been sent to the agents.
  • Normalized the two table separator rows.

The target-execution table needed no wording changes — it already matched the implementation.

The CANCELED/SKIPPED wording documented the intended behavior correctly; the platform is being fixed to match it in steadybit/platform#1818. The RUNNING and FAILED rows are pure doc corrections — no behavior change there.

https://steadybitgmbh.kanbanize.com/ctrl_board/2/cards/15296

The step state table claimed RUNNING requires all targets to be executing,
while a step is running as soon as its first target execution starts. It also
left the canceled-vs-skipped boundary and the "no matching target" failure
cause undocumented, so readers could not tell why a step that never ran was
reported one way or the other.

Spell out that a step is only CANCELED when at least one target execution was
running, and that a step whose action was dispatched but never started is
SKIPPED together with all its target executions.

(ticket 15296)
@ManuelGerding
ManuelGerding force-pushed the docs/15296-step-state-semantics branch from 44aff8a to 07f1fab Compare August 4, 2026 09:49
@ManuelGerding
ManuelGerding merged commit 52c48b3 into main Aug 6, 2026
2 checks passed
@ManuelGerding
ManuelGerding deleted the docs/15296-step-state-semantics branch August 6, 2026 09:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant