Files
clientflow_backend/docs/CLIENTFLOW_V468_OPERATIONAL_SAFETY_CONSOLIDATION.md
2026-06-09 22:55:58 +01:00

60 lines
1.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ClientFlow v4.6.8 — Operational Safety Consolidation
Esta versão consolida as proteções iniciadas em v4.6.5v4.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
```