---
id: "conversa.enviar-mensagens"
titulo: "Enviar mensagens e a fila de envio"
resumo: "Escreva e envie durante um turno em andamento sem perder a mensagem, e entenda por que 'enfileirada' não significa 'entregue' nem 'respondida'."
idioma: "pt-br"
tipo: "guia"
categoria: "telas"
aplicavelDesde: "0.0.16"
capabilities: ["chat.queue.durable"]
estadoEditorial: "aprovado"
nivelEvidencia: "artefato-distribuido"
refFonte: "27574c339b58316408f6be2d62169d59041d07bf"
revisaoFonte: "2026-09-24"
revisor: "mantenedor (v1, 2026-10-03)"
rota: "/docs/pt-br/conversa/enviar-mensagens/"
fonte: "pt-br/conversa/enviar-mensagens.md"
caminhoPublico: "docs/publica/pt-br/conversa/enviar-mensagens.md"
hashFonte: "sha256:aed5fbd94de356e9888352a0c8e885a531fa5ad9ca6b5b943f3d1035cae3017b"
hashDestaPagina: "sha256:aed5fbd94de356e9888352a0c8e885a531fa5ad9ca6b5b943f3d1035cae3017b"
traducaoAssistidaPorIA: false
traducaoDesatualizada: false
corpoRetido: false
---
Escrever na Conversa é simples: você digita no campo abaixo da conversa e envia. O que merece explicação é o que acontece **quando o agente ainda está trabalhando** — porque aí a resposta certa não é "espere", é enfileirar sem perder o que você escreveu.

## Enviar durante um turno

Quando você envia com um turno em andamento, a mensagem não é descartada nem entregue pela metade: ela entra numa **fila de envio** e sai depois. Na tela, ela aparece com o estado de fila.

A confusão que vale evitar é tratar esse estado como entrega. **"Enfileirada" quer dizer que a sua intenção foi guardada, não que o agente recebeu e não que ele já respondeu.** Só o estado de entrega posterior diz que a mensagem saiu.

## A fila durável é a fonte quando ela existe

Existem dois caminhos possíveis para a fila: um durável, no processo principal, e um do renderer. A decisão registrada é direta — **existindo a porta durável, ela é a fonte, e a fila do renderer sai do caminho para provedores nativos.**

A porta existe quando o provedor expõe os **cinco** métodos da fila: preparar o input, admitir o envio, mudar a fila, listar a fila e avisar sobre entregas. Expõem a porta completa: **Claude, Codex, Grok, OpenCode e Hermes**. Verboo, Cursor e Pi não a expõem, e o envio neles segue a rota anterior.

A fila é declarada por provedor e não por uma lista fixa na tela: ligar a fila num adapter é mexer no bloco daquele adapter, não no componente comum. Namespace sem os métodos significa sem porta — e a tela não finge o contrário.

## A regra que evita a mensagem que desaparece

Esta parte existe porque um defeito real foi medido, e vale conhecer o motivo:

> **A ociosidade se decide antes da reivindicação.** Um envio com turno em curso fica **na fila** — o estado que o dreno sabe pegar. Não se reivindica uma entrega que ainda não se sabe se vai sair.

O defeito original tinha duas causas: a rota mandava para a fila do renderer, que **não tem dreno** quando o provedor é nativo; e o despacho reivindicava a entrega **antes** de saber se havia turno em curso, deixando-a num estado que o acerto de fim de turno aceitava e marcava como concluída. O efeito visível era o pior possível: **a mensagem desaparecia sem erro e a tela dizia que tinha sido entregue.**

## Limites que valem saber agora

- **Não afirme que o envio chegou só porque ele foi enfileirado.** Observe o estado de entrega.
- **A fila não é a mesma coisa em todo provedor.** Onde a porta não existe, não há a mesma garantia, e esta página não promete que haja.
