# ClientFlow v4928.1.5.132.3 — Invoice evidence alignment

## Problema corrigido

A oportunidade NOLTIA apresentava `CLOSE_OPPORTUNITY` como próxima ação, mas o endpoint `/operations/delivered` bloqueava com “Concluir oportunidade exige evidência de fatura enviada ao cliente”.

A task `SEND_INVOICE` tinha sido criada quando o documento principal ainda era o orçamento. Por isso, os campos históricos `metadata.document_id` e `metadata.document_number` continuavam a apontar para `ORC.ORC2026.220`. Ao concluir a task, o ClientFlow anexou a fatura real em `metadata.invoice_delivery_context` (`FA.FA2026.159`), mas o workflow guard ignorava esse contexto autoritativo.

## Alterações

- Nova regra comum em `app/invoice_evidence.py` usada pelo motor central e pelo workflow guard.
- `invoice_delivery_context` passa a ter precedência sobre o contexto antigo do orçamento.
- São aceites como identidade da mesma fatura:
  - UUID interno de `commercial_documents`;
  - `external_id` Jasmin;
  - número fiscal da fatura.
- Uma referência autoritativa a outra fatura continua a ser rejeitada.
- O motor central passa a carregar `tasks.metadata` e `commercial_documents.external_id`, eliminando decisões divergentes.
- Mantida a compatibilidade com tasks antigas sem linhas de fatura normalizadas.

## Dados

Não existe migração nem alteração automática de dados. A task da NOLTIA já contém evidência suficiente em `invoice_delivery_context`; após instalar o código, o guard deve aceitá-la.

## Verificação

```bash
python scripts/verify_v132_3_invoice_sent_evidence.py --self-test
python scripts/verify_v132_3_invoice_sent_evidence.py \
  --opportunity-id 321aab34-31df-44bf-9bcd-7e7d86797598
```

Resultado esperado para a NOLTIA:

```text
central_action = CLOSE_OPPORTUNITY
invoice_sent_evidence = true
invoice_sent_task_evidence = true
delivered_blocked_reason = null
```

## Testes

- 533 testes aprovados com o módulo de base de dados substituído por stub no ambiente de construção.
- Regressão específica com o payload real da NOLTIA.
- `py_compile` aprovado.
