Release v4928.1.4.2 stable

This commit is contained in:
2026-06-09 22:55:58 +01:00
commit 6445044ac6
280 changed files with 41775 additions and 0 deletions

View File

@@ -0,0 +1,109 @@
# ClientFlow v4.8.0 — Operational Automation, Audit & Recovery
Esta versão avança de uma UI HTMX estável para segurança operacional: recuperação de outbox presa, auditoria de ações manuais e confirmações para ações sensíveis.
## Objetivo
- Recuperar ou expor itens de outbox presos em `processing`.
- Registar ações críticas do operador como eventos auditáveis.
- Evitar cliques acidentais em ações sensíveis.
- Melhorar `/system/health` e `/operations` com métricas operacionais reais.
## Outbox stale recovery
Novas funções:
- `outbox_stale_minutes()`
- `recover_stale_processing_outbox()`
Novos ENV:
```env
OUTBOX_STALE_PROCESSING_MINUTES=30
OUTBOX_STALE_RECOVERY_MODE=manual_only
OUTBOX_RECOVER_STALE_BEFORE_PROCESS=true
```
Modos disponíveis:
- `manual_only`: marca `processing` antigo como `stale` para decisão humana.
- `mark_failed`: marca como `failed` com erro explicativo.
- `retry_pending`: devolve para `pending` e incrementa retry.
O worker `scripts/process_outbox.py` chama a recuperação antes de fazer claim de novos itens, por defeito em modo `manual_only`.
Também foi criado:
```bash
python scripts/recover_stale_outbox.py
```
## Auditoria operacional
Novo módulo:
```text
app/operator_audit_service.py
```
Regista eventos `operator_action` em `business_events` sem criar nova tabela. Quando existe `task_id`, também espelha em `task_events`.
Ações auditadas:
- concluir task manualmente
- concluir task com nota
- ignorar task
- reclassificar task
- reprocessar outbox
- marcar outbox como sent/failed/ignored
- recuperação de outbox stale
## Confirmações para ações sensíveis
Foram adicionados `hx-confirm` nas ações HTMX sensíveis:
- concluir task
- ignorar task
- reclassificar task
- reprocessar outbox
- ignorar outbox
- marcar outbox como failed
## Saúde operacional
`/system/health` passa a destacar:
- tasks pendentes
- tasks concluídas 24h
- tasks auto-completed 24h
- tasks com associação ambígua
- outbox processing
- outbox stale
- outbox failed/blocked/stale
- ações do operador nas últimas 24h
- configuração de stale recovery
## Operations
O Centro de trabalho ganha filtros de foco operacional:
- A fazer
- Bloqueadas
- Ambíguas
- Atrasadas
- Vendas
- Financeiro
- Logística
- Revisão
- Concluídas hoje
## Base de dados
Não há nova tabela obrigatória. A auditoria usa `business_events` e `task_events`, já existentes.
## Validação
```bash
PYTHONPATH=. python -m compileall app scripts tests
PYTHONPATH=. pytest -q
```