Rename and/or restore a Solution run
const url = 'http://localhost:8000/api/solutions/runs/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/';const options = { method: 'PATCH', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"name":"example","archived":true}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PATCH \ --url http://localhost:8000/api/solutions/runs/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/ \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "name": "example", "archived": true }'Partial update (#1192): name sets the coach-editable display name (blank clears back to the client-computed default); archived: false restores an archived run to the active list (true archives it). Send whichever applies — both are optional. Team-scoped; cross-team 404.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Request Body
Section titled “Request Body”PATCH /api/solutions/runs/<id>/ — rename and/or (un)archive a run
(#1192). Both fields are optional so a rename (name) and a restore
(archived: false) share one endpoint; send whichever applies.
object
New display name; blank clears back to the computed default.
false restores an archived run to the active list; true archives it (same as DELETE without ?permanent).
Examplegenerated
{ "name": "example", "archived": true}PATCH /api/solutions/runs/<id>/ — rename and/or (un)archive a run
(#1192). Both fields are optional so a rename (name) and a restore
(archived: false) share one endpoint; send whichever applies.
object
New display name; blank clears back to the computed default.
false restores an archived run to the active list; true archives it (same as DELETE without ?permanent).
Examplegenerated
name=example&archived=truePATCH /api/solutions/runs/<id>/ — rename and/or (un)archive a run
(#1192). Both fields are optional so a rename (name) and a restore
(archived: false) share one endpoint; send whichever applies.
object
New display name; blank clears back to the computed default.
false restores an archived run to the active list; true archives it (same as DELETE without ?permanent).
Responses
Section titled “Responses”One row in the reports manager (#1192). name is the raw stored name
(blank until the coach renames the run — the FE renders a localized
fallback when blank); client_name / session_count are display helpers.
sessions (the report’s constituent captures) is populated only when the
view seeds a session_refs context map — see session_refs_for_runs.
object
draft- Draftready- Readyfailed- Failed
A constituent session of a run (one entry of its bindings) — enough
for the reports card to render like a Sessions journal row: label + link it
(the expandable “attached sessions” list) plus its headline metrics chips
(#1192). Read-only projection; the run’s report is still assembled from the
sessions’ metrics on retrieve.
object
One headline metric on a candidate row — the picker shows the top few as chips (mirrors the Sessions journal row shape).
object
Example
{ "status": "draft"}object
Human-readable message, or a stable machine code for the cases a client branches on. The standard envelope for 400 (validation — a field-keyed object may appear instead), 401 (missing / invalid credentials), 403 (authenticated but not permitted), and 404 (absent — cross-team records are collapsed to 404 so the API never leaks the existence of another team’s data).
Examplegenerated
{ "detail": "example"}object
Human-readable message, or a stable machine code for the cases a client branches on. The standard envelope for 400 (validation — a field-keyed object may appear instead), 401 (missing / invalid credentials), 403 (authenticated but not permitted), and 404 (absent — cross-team records are collapsed to 404 so the API never leaks the existence of another team’s data).
Examplegenerated
{ "detail": "example"}