---
title: "Run one v2 conversation turn with an SSE response"
method: POST
path: "/v1/v2/conversations/{conversation_id}/turns/stream"
tags: ["runtime v2"]
---

# Run one v2 conversation turn with an SSE response

`POST /v1/v2/conversations/{conversation_id}/turns/stream`

SSE counterpart to ``POST /v2/conversations/{id}/turns``.

Token streaming: the v2 ``ConversationTurnDriver`` runs the turn as one
read-modify-write transaction but now accepts an ``on_token`` callback that
the orchestrators/runnables fire as the *answer* streams (speculative losers
and transferring members are filtered upstream — a Supervisor buffers the
speculation and flushes only on ``continue``). We bridge that push-callback
to this pull-generator with an :class:`asyncio.Queue`: the driver runs as a
task that enqueues each token delta, and the generator drains the queue into
``delta`` frames as they arrive. When the driver finishes we emit a
``complete`` frame carrying the v2 ``TurnResponse`` JSON (including the
server-measured ``turn_ttft_ms``). The wire contract (``delta`` /
``complete`` / ``error`` frames) matches ``/v1/runtime/turn/stream`` so the
UI needs no change.

DB session lifecycle: the per-request ``session`` runs the org-scope check
and the turn (inside the driver task), and is committed before the
``complete`` frame so the FastAPI dependency teardown doesn't hold it open
across the response. The generator only touches the session after the driver
task has finished, so the two never race on it.

## Path parameters

- `conversation_id` string, uuid, required

## Query parameters

- `trace` boolean

## Request body

- TurnRequest — Drive one turn of a v2 conversation (Phase F1).
  - `user_message` string, required
  - `for_update` boolean
  - `include_evidence` boolean
  - `evidence_view` 'display' | 'full'

## Response `200`

Successful Response

- unknown

## Other responses

- `400` — Bad request
- `401` — Authentication required
- `404` — Resource not found
- `422` — Validation Error

---

[API](https://skmtc.net/oneloop-hq/apis/feather-api.md) · [All operations](https://skmtc.net/oneloop-hq/apis/feather-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/oneloop-hq/feather-api/revisions/888bdd5c076e/schema)
