Skip to content
Select themeSelect language

patch_api_tasks_id_config

PATCH
/api/tasks/{id}/config
curl --request PATCH \
--url https://example.com/api/tasks/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/config \
--header 'Content-Type: application/json' \
--cookie supacloud_session=<supacloud_session> \
--data '{ "effort": "example", "mode": "example", "model": "example", "subagents": "example" }'
id
required
string format: uuid

Task id

Media typeapplication/json

ADR 0049 §4 + Axis 1/2 (mig 272) — PATCH /tasks/{id}/config (Tier A) body. The Tier-A surface allowlists ONLY effort + model + mode + subagents; deny_unknown_fields rejects ANY other key with a 400 (parse, don’t sanitize — a caller cannot smuggle e.g. agent_type through this focused endpoint, which would be a privilege/scope escalation past the allowlist). At least one field must be present (an all-absent body is a 400 at the service layer).

object
effort
string | null
mode

Axis 2 (mig 272) — the harness-native MODE (build|plan; empty clears). An allowlisted Tier-A axis like effort/model; any other field stays a 400.

string | null
model
string | null
subagents

Axis 1 (mig 272) — the decoupled subagent toggle (on|off; empty clears).

string | null
Examplegenerated
{
"effort": "example",
"mode": "example",
"model": "example",
"subagents": "example"
}

Applied (non-running) or restart-required (running) — see applied

Media typeapplication/json

ADR 0049 §4 — PATCH /tasks/{id}/config response. applied is true when the effort/model were persisted to the task’s stored config — that is, BOTH the non-running merge AND a Tier-B live apply (the config is always persisted in both, so applied means “the value is now the task’s config”). applied_live is true only for the Tier-B path: the change was ALSO delivered to the running agent and takes effect mid-session (no restart needed). When the task is running on a restart-only harness (or its container is unreachable here), applied is false and restart carries the [Restart now] affordance (the config was NOT mutated).

object
applied
required
boolean
applied_live
required

ADR 0049 §4 Tier-B — the change was applied LIVE to the running agent (claude today) and takes effect on the next turn without a restart. Implies applied.

boolean
restart
One of:
null
Examplegenerated
{
"applied": true,
"applied_live": true,
"restart": {
"args": {
"additionalProperty": "example"
},
"command": "example",
"glyph": "example",
"label": "example"
}
}

Structured client error (non-allowlisted field, invalid effort, or empty body)

Authentication required

Permission denied

Task not found

Structured server error