Repository navigation
feat: run an experiment again while it is running - #89
Merged
Merged
Conversation
ManuelGerding
force-pushed
the
feat/run-again
branch
from
October 23, 2026 12:01
63878af to
b7f8b6a
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Ticket: https://steadybitgmbh.kanbanize.com/ctrl_board/2/cards/11244
Platform: https://github.com/steadybit/platform/pull/2157
What
The platform can now run an experiment again while a run of it is in progress, as an explicit opt-in:
allowRunningAgaintogether with anIdempotency-Keyon every API run endpoint, and a schedule setting of the same name. This covers both in the CLI.experiment run --run-againstarts another run of an experiment that is already running. Without it, nothing changes: the platform returns the run in progress and the CLI follows it, as before.-k,-f(with and without a key) and--template, the three run endpoints.Idempotency-Key(a UUID), kept across the validation and busy retries of that run, so a retried request never starts a second run. A run started again by--expectation-retriesgets a new key.--run-again, the one case the platform requires it.schedule create/schedule updatetake--run-again/--no-run-again(unset leaves an update alone, like--allow-parallel).schedule listshows a "Run again" column, and gitops treats a missingallowRunningAgainasfalse, as the platform does.Spec
No spec change in this PR: the production platform (2.8.10) already ships steadybit/platform#2157 and steadybit/platform#2190, and the spec refreshed for v6.3.0 already has
allowRunningAgain,Idempotency-Keyand the schedule property. A freshgo run ./internal/tools/spec fetchfrom production matches the committed spec.Changelog
The entries sit under Unreleased; the version is set when the release is cut.
Tests
experiment: no flag and no key without--run-again; with it, the same key across the retries of one run, and a new key for a run started again by--expectation-retries.schedule: creating a schedule that runs again sendsallowRunningAgain.go test ./...,go vet ./...andgo run ./internal/tools/spec coveragepass.🤖 Generated with Claude Code