> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ziro-agent.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Background jobs

> Submit turns to a worker queue, poll their status, and configure concurrency and backpressure per agent.

This page will cover running turns in the background. Ziro has two queue levels.
The interactive inflight buffer is always available: it captures input typed
mid-turn and drains one line per turn at a clean boundary, so what you type is
never lost and never jumps an open approval prompt. Separately, an opt-in worker
queue runs whole turns off-session on namespaced job threads, driving the same
graph as an interactive turn.

Submitting and polling go through the headless CLI:

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
python -m app.cli.chat_once --user <USER_ID> --agent <AGENT_ID> --message "<MSG>" --submit
python -m app.cli.chat_once --user <USER_ID> --status <JOB_ID>
python -m app.cli.chat_once --user <USER_ID> --status all
```

The page will cover `queue_policy.yaml` (which gates only the cross-thread
worker queue, not the inflight buffer), including `workers` pool size,
`max_depth` backpressure, per-job recursion limits, recovery of orphaned jobs
after a crash, and result TTL. The worker queue is off by default; `researcher`
ships with it enabled as the reference opt-in.

<Note>
  This page is in progress. The shipped `researcher/queue_policy.yaml` is fully
  commented and is the best reference until it lands.
</Note>

See [Headless usage](/interfaces/headless) for the full one-shot CLI,
[chat\_once reference](/reference/chat-once) for the JSON contract, and
[Configuration](/guides/configuration) for how `queue_policy.yaml` resolves.
