# Release Notes — ClientFlow v4928.1.4.9

## Tema

Opportunity Reply Assistant: responder ao cliente a partir da tarefa/oportunidade, usando modelos comerciais e anexos já associados à oportunidade.

## Alterações principais

- Adicionado catálogo de modelos comerciais em `app/message_templates.py`.
- Adicionado serviço `app/reply_assistant_service.py` para gerar rascunhos, validar contexto e enviar resposta.
- Adicionada tabela `message_drafts` no arranque do schema.
- Adicionado bloco **Resposta ao cliente** na página de detalhe da tarefa.
- Adicionados endpoints:
  - `POST /tasks/{task_id}/reply-draft`
  - `POST /tasks/{task_id}/send-reply`
- Adicionadas funções públicas de envio Chatwoot:
  - `send_public_message()`
  - `send_public_message_with_attachments()`
- Adicionado registo outbound em `communications`.
- Adicionado evento `reply_sent` na timeline da oportunidade.
- Adicionada opção de enviar e concluir tarefa no mesmo passo.
- Adicionada variável futura `CLIENTFLOW_REPLY_LLM_ENABLED=false`.

## Segurança operacional

- Só permite anexar documentos da mesma oportunidade da tarefa.
- Bloqueia envio sem conversa Chatwoot.
- Bloqueia envio fiscal se cliente fiscal estiver incompleto.
- Bloqueia PDF automático para documentos sem `external_id`.
- Mantém `CHATWOOT_WRITE_ENABLED=false` como travão de segurança por defeito.

## Testes

- Adicionado `tests/test_v4928_1_4_9_reply_assistant_static.py`.
- Validação executada: `225 passed`.

