id: "REQ-289" title: "JS e CSS publicados em dist/ ficavam congelados: atualização e deploy passam a republicar o que mudou" status: "implemented-pending-homologation" date: "2026-10-20" author: "executor" target_repo: "conn2flow" batch: "BATCH-297" topology: "dupla" autonomy: "autonomo_monitorado" origin: "Engenheiro Chefe: depois da 3.0.13 no Lab, a aba de choques continuava recarregando a página ao trocar de página/filtro"
req-289: dist/ acompanhando as entregas
Relato
Mesmo com a 3.0.13 (aba de choques sem recarregar) aplicada no Lab, filtro e páginas da lista de choques seguiam recarregando a tela e fechando a aba.
Diagnóstico (BATCH-297)
-
Playwright autenticado no Lab: depois de clicar em "Todos", a página navegou (a marca
window.__marcasumiu) e a aba de choques fechou. -
O navegador recebia
/dist/admin-atualizacoes/js.js?v=b28d47f9…, sem o código novo. Opublic_html/dist/(req-028) é servido direto pelo servidor web; o.manifest.jsondá a URL e o?v=(hash do conteúdo publicado). No Lab a última publicação foi em 16/10; na produção, em 15/10. Nenhuma atualização do sistema nem deploy de projeto republicava: todo JS/CSS publicado ficava congelado na data da última publicação manual (assets:publish). -
Simulação sobre cópia: Lab, 2 de 611 arquivos congelados (
admin-atualizacoes,admin-categorias); produção, 59 de 611 (vários só por quebra de linha da publicação feita no Windows).
Correção
-
instalacao_dist_ressincronizar()(biblioteca do manifesto, carregada do staging): para cada item do.manifest.json, compara a fonte atual (o.min.jsquando a publicação é minificada e ele não está vazio) pelo sha1 e, se mudou, regrava o arquivo publicado e o registro (sha1,bytes,v). Não publica novos nem remove nada. -
Chamada na atualização do sistema (CLI e painel), logo depois de mover os arquivos, e no deploy de projeto pela API, depois de aplicar os arquivos.
Critérios de aceite
-
Depois de atualizar,
/dist/<módulo>/js.jstraz o código da versão instalada e o?v=muda. -
A aba de choques navega sem recarregar no Lab.
-
Testes do core verdes.