New run: start a run from the app, on the working copy
The site promises simulated inputs and mocked sensor values, and nothing in the app was that. A run already is: the values are the caller's, the state is the run's own namespace, and nothing it computes reaches the live flow. What was missing was a screen to do it from, and the draft flag being honoured. `/runs/new` is a flow, a field per declared input, a seed and Run; `/runs` stays the log. A comma-separated list in a number field expands into the grid `fluksio sweep --param` builds and goes to the sweep route, so launching one no longer needs a terminal. Only numbers split: a comma in a string is content, and one in JSON is syntax. `RunCreate.draft` was validated at submit and dropped before the run executed, so "try the working copy" ran the published one. `Run.draft` is a column now, the driver reads the same copy the submit checked, and a retry carries it. `FlowSummary.mode` came with it so the rail can say which flows are batch before one is picked. Also here: a Retry button on a finished run, which the route has always had and the UI never did, and parameter cells truncated to their column with the full value on hover. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013TTfoK82awm8wvxXhHz3XF
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"
|
||||
import { useNavigate } from "@tanstack/react-router"
|
||||
import { useMemo } from "react"
|
||||
|
||||
import { OpenAPI, RunsService } from "@/client"
|
||||
@@ -128,6 +129,25 @@ export function useCancelRun() {
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Run the same thing again, as a run of its own.
|
||||
*
|
||||
* The engine keeps the flow, the inputs, the seed and the group, so a sweep
|
||||
* missing one config is completed rather than reissued — and lands on the new
|
||||
* run, since that is what there is to watch.
|
||||
*/
|
||||
export function useRetryRun() {
|
||||
const client = useQueryClient()
|
||||
const navigate = useNavigate()
|
||||
return useMutation({
|
||||
mutationFn: (runId: string) => RunsService.retryRun({ runId }),
|
||||
onSuccess: (run: { id: string }) => {
|
||||
client.invalidateQueries({ queryKey: runKeys.all })
|
||||
navigate({ to: "/runs/$id", params: { id: run.id } })
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Save an artifact to disk.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user