---
title: "Post Task Steer"
method: POST
path: "/tasks/{task_id}/steer"
---

# Post Task Steer

`POST /tasks/{task_id}/steer`

Record a steering receipt for a running worker and apply its effect.

The receipt is bound into the audit chain before the effect executes; the
``steer.*`` mailbox message and any process signal reference the receipt
hash returned here. An effect can never precede its receipt.

## Path parameters

- `task_id` string, required

## Request body

- TaskSteerPost — Body for POST /tasks/{task_id}/steer (#2508). An operator steering command: pause, resume, guidance, redirect, or abort. Free-text fields are capped so the mailbox delivery envelope always fits the mailbox body cap. ``displayed_payload_hash`` is the hash the confirmation UI computed over what it showed the operator; when supplied the server rejects the action if it differs from the executed command, so the receipt binds exactly the confirmed payload.
  - `kind` string, required
  - `principal` string
  - `guidance` string
  - `redirect_target` string
  - `reason` string
  - `session_id` string
  - `adapter` string
  - `worktree` string
  - `displayed_payload_hash` string, nullable

## Response `201`

Successful Response

- TaskSteerResponse — The receipt a steering action produced (#2508). The response IS the receipt: the chain-anchored ``receipt_hash`` the delivered effect references, the ``payload_hash`` it binds, and the mailbox journal position the effect was delivered at.
  - `kind` string, required
  - `task_id` string, required
  - `principal` string, required
  - `scope` string, required
  - `payload_hash` string, required
  - `receipt_hash` string, required
  - `timestamp` number, required
  - `mailbox_seq` integer, required
  - `mailbox_entry_hash` string, required
  - `checkpoint_event_hash` string
  - `abort_signal_written` boolean

## Other responses

- `403` — Scope is not authorised to steer
- `404` — Task not found
- `409` — Confirmed payload differs from the executed command
- `422` — Malformed steering command
- `503` — Task mailbox is not configured

---

[API](https://skmtc.net/sipyourdrink-ltd/apis/bernstein-task-server.md) · [All operations](https://skmtc.net/sipyourdrink-ltd/apis/bernstein-task-server/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sipyourdrink-ltd/bernstein-task-server/versions/86f514b4e920/schema)
