60 lines
1.5 KiB
Markdown
60 lines
1.5 KiB
Markdown
# ClientFlow v4.6.8 — Operational Safety Consolidation
|
||
|
||
Esta versão consolida as proteções iniciadas em v4.6.5–v4.6.7 e prepara o caminho para v4.7/v4.8.
|
||
|
||
## 1. Auto-complete com política hard-deny
|
||
|
||
Mesmo que `CHATWOOT_AUTO_COMPLETE_ACTION_CODES` seja configurado manualmente, estas ações não são fechadas por mensagem outgoing:
|
||
|
||
- `CONFIRM_PAYMENT`
|
||
- `CONFIRM_PAYMENT_AND_PREPARE_SHIPMENT`
|
||
- `MARK_NO_INTEREST`
|
||
- `REVIEW_MANUALLY`
|
||
- `PREPARE_ORDER`
|
||
- `CREATE_SHIPMENT`
|
||
- `REMOVE_FROM_LIST`
|
||
|
||
O default fica limitado a ações em que responder no Chatwoot é a execução da tarefa:
|
||
|
||
- `SEND_INFO`
|
||
- `SEND_QUOTE`
|
||
- `SEND_PROFORMA`
|
||
- `SEND_INVOICE`
|
||
- `SUPPORT`
|
||
|
||
## 2. Outbox com claim transacional
|
||
|
||
`scripts/process_outbox.py` passa a usar `claim_pending_outbox()`.
|
||
|
||
O worker marca linhas como `processing` dentro da mesma transação, usando:
|
||
|
||
```sql
|
||
FOR UPDATE SKIP LOCKED
|
||
```
|
||
|
||
Isto reduz o risco de dois workers processarem a mesma ação externa.
|
||
|
||
## 3. Health operacional
|
||
|
||
`/api/internal/system/health` passa a expor métricas operacionais:
|
||
|
||
- tasks pendentes
|
||
- tasks concluídas nas últimas 24h
|
||
- auto-completes nas últimas 24h
|
||
- tasks com oportunidade ambígua
|
||
- outbox em processing
|
||
- outbox processing stale
|
||
- outbox failed/blocked
|
||
- configuração efetiva do auto-complete Chatwoot
|
||
|
||
## 4. Navegação mais limpa
|
||
|
||
`/tasks` continua disponível para diagnóstico/listagem, mas sai da navegação principal. A entrada diária recomendada é `/operations`.
|
||
|
||
## Validação
|
||
|
||
```bash
|
||
PYTHONPATH=. python -m compileall app scripts tests
|
||
PYTHONPATH=. pytest -q
|
||
```
|