2.7 KiB
2.7 KiB
ClientFlow v4928.1.5.34 — Communication Composer + SQL safety foundation
Atualização conservadora focada em reduzir erros de rascunho/LLM e começar a padronizar SQL seguro.
Principais melhorias
1. Communication Composer
- O painel de resposta passa a pedir um objetivo explícito antes de gerar rascunho:
- Enviar informação/lista de equipamentos
- Enviar orçamento
- Enviar pró-forma
- Enviar fatura
- Confirmar pagamento/follow-up
- O operador pode escrever instruções adicionais para a IA antes da geração.
- Os documentos/anexos da oportunidade ficam disponíveis no Composer antes de chamar IA, não apenas depois do rascunho.
- A instrução do operador é guardada em
message_drafts.operator_instruction. - O objetivo escolhido e os documentos selecionados ficam persistidos em
message_drafts.metadata.communication_objective.
2. Guardrails de rascunho para faturas
- Para
SEND_INVOICE, o validador bloqueia rascunhos que:- dizem que a fatura ainda será emitida;
- pedem comprovativo de pagamento indevidamente;
- tratam uma fatura emitida como pró-forma/pagamento pendente.
- Quando uma fatura está selecionada, o sistema recomenda mencionar que segue em anexo.
- O prompt OpenAI/file_search recebe
objetivo_operadoreinstrucao_operador, para impedir que a IA reinterprete o próximo passo.
3. Base SQL safety
- Novo
app/db_helpers.pycom helpers para serialização JSONB segura. - Updates internos de estado de draft enviados/falhados passam a usar
metadata || CAST(:metadata_patch AS JSONB)em vez dejsonb_build_objectcom binds soltos. - Novo script read-only
scripts/audit_sql_safety.pypara encontrar padrões SQL frágeis:jsonb_build_object(... :param ...):param IS NULLsem castANY(:lista)sem tipo explícito- concatenação JSONB sem
CAST(:metadata_patch AS JSONB)
4. Auditoria profunda incluída no pacote
- Incluído
scripts/audit_deep_system.pycom correção de serializaçãoDecimal/datas/UUID.
Segurança operacional
- Não envia mensagens automaticamente.
- Não altera tasks, oportunidades ou clientes existentes.
- Não executa reparações automáticas.
- A nova auditoria SQL é apenas diagnóstico.
Validação
python -m compileall -q app scripts testspython -m pytest -q- Resultado local:
312 passed
Comandos úteis pós-instalação
python scripts/audit_system_health.py; echo "EXIT_CODE=$?"
python scripts/audit_deep_system.py --window-hours 72 --sample-limit 25; echo "EXIT_CODE=$?"
python scripts/audit_sql_safety.py; echo "EXIT_CODE=$?"
Nota: audit_sql_safety.py pode devolver EXIT_CODE=1 quando encontra padrões a rever. Isso é esperado nesta fase e não significa falha de runtime.