# Validação da Correção — Barge-in e Pool xAI

## Escopo

A correção torna o relay upstream cancelável durante uma síntese e preserva o WebSocket somente após confirmação explícita de boundary limpo (`audio.clear`).

## Comportamento validado

Sequência simulada após barge-in:

```text
TIA -> text.clear
xAI -> audio.delta   (residual; descartado)
xAI -> audio.done    (residual; descartado)
xAI -> audio.clear   (boundary confirmado)
```

Resultado esperado e observado no teste focado:

- `text.clear` é enviado ao upstream;
- mensagens residuais são drenadas localmente;
- frames residuais não são encaminhados ao LiveKit;
- `audio.clear` confirma que o socket pode ser reutilizado;
- se não houver `audio.clear` no timeout, o slot é marcado unhealthy, fechado e posteriormente recriado pelo maintenance loop.

## Validações executadas neste ambiente

- `python -m compileall -q src`: PASS;
- parse YAML dos 6 manifests regionais renderizados: PASS;
- teste focado `_clear_slot_and_wait` com 2 mensagens residuais antes de `audio.clear`: PASS;
- suíte existente `tests/adapters/test_xai_tts.py`: não executada por falta do pacote `oci` no runtime de validação;
- `kubectl --dry-run`: não executado porque `kubectl` não está instalado no runtime; os manifests foram validados por parser YAML.

## Capacidade

`XAI_POOL_SIZE` representa apenas o tamanho do pool por réplica TIA. A capacidade total deve seguir o provisionamento/acordo real do ambiente xAI/OCI, sem assumir o limite público de 50 conexões.
