Assistant turn, end to end

---
title: Assistant turn, end to end
---
sequenceDiagram
    participant C as Console
    participant A as dispatch-api
    participant P as Postgres
    participant T as Tracking API
    participant M as Claude

    C->>A: POST /conversations/{id}/messages
    A->>P: budget check (tokens_used < token_budget)
    A->>P: retrieve top-k knowledge chunks
    A->>T: fetch tracking events for pinned shipment
    A->>P: load active prompt version
    A->>M: messages.create (stream)
    loop streamed chunks
        M-->>A: content delta
        A-->>C: SSE event
    end
    A->>P: persist both turns + token usage
    A-->>C: final event (message id, usage)