v2.311.3
Atual- Correção Rascunho nao sobrevive mais ao envio, e a LGPD tambem tem O banner "Continuar de onde parou?" reaparecia para quem JA havia enviado a manifestacao. Nao era logica errada: era um comentario prometendo codigo que nunca foi escrito. form.html dizia "limpeza efetiva ocorre na pagina de confirmacao" e confirm.html nao tinha uma linha de JS de rascunho. A outra porta de saida, ?cleared=1, nao era setada por nenhum .py do repositorio. O rascunho so morria pelo TTL de 2h ou por clique em "Comecar do zero". Tres bugs, nao um: 1. Nunca limpava no envio (acima). 2. Tipo selecionado sozinho ja gravava rascunho, entao o banner aparecia para quem nunca digitou uma letra. 3. O link "Trocar" de contexto chamava `clearDraft ? clearDraft() : null`, e `clearDraft` nunca existiu no escopo global: levantava ReferenceError e nada era limpo. Era o "simples fato de troca" que trazia o rascunho de volta. O que muda: - templates/shared/_draft_resume.html passa a ser o dono da POLITICA (chave, validade, privacidade, "ja foi enviado", quando vale oferecer). Cada tela entrega so o capture e o apply dos proprios campos. Duplicar a politica no modulo LGPD seria duplicar o bug. - As duas confirmacoes varrem o prefixo do tenant e apagam o rascunho de qualquer contexto. Rede de seguranca para quem fecha a aba no meio do redirect: o rascunho e marcado no submit e se descarta sozinho apos 10min, o que preserva a recuperacao quando o servidor recusa o POST. - Chave por CONTEXTO DE ENTRADA (vxDraft.{schema}.{ctx}). Colaborador e Cliente param de se contaminar, o que importa mais desde que campo passou a ter escopo por contexto. - Identificacao NAO e mais gravada no navegador: nome, e-mail e consentimento na Ouvidoria; documento, e-mail, selfie e consentimentos na LGPD. O partial ainda remove PII por conta propria, inclusive campo do Form Builder com nome sugerindo CPF/telefone, para um capture futuro descuidado nao vazar. - "Comecar do zero" descarta e fica na pagina, em vez de devolver a pessoa para a tela de escolher perfil. - O modulo LGPD ganha o banner, restaurando tipo, motivo e detalhamento no passo 1. NAO restaura o passo: o passo 2 e verificacao por OTP, que nao sobrevive a recarga, e devolver a pessoa ao passo 4 daria uma tela que ela nao consegue enviar. O banner avisa que a verificacao sera refeita. - init sob `window.VXDraft ? ... : null`: se o partial nao carregar, o formulario continua enviando. Rascunho e conveniencia. - Emoji do banner virou Font Awesome. Verificacao: 11 testes de comportamento em JS (apps/core/tests/js), com stubs de localStorage, ligados na suite Python por wrapper que SKIPA sem Node. Eles acharam um bug meu antes do deploy: descricao de 2 caracteres driblava o minimo de 20, porque a varredura generica contava `description` como campo preenchido. Mais 12 testes de contrato e de renderizacao, que travam justamente a regressao original: confirmacao sem limpeza, chave sem contexto, PII no capture e include com caminho errado. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>