# 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 ```