{"v":{"area":"admin","slug":"changelogs","path":"/home/tiixcom/public_html/sistema/docs/readme/admin/changelogs.md","relative_path":"docs/readme/admin/changelogs.md","title":"Central de Changelogs","html":"<h1>Central de Changelogs</h1><h2>Rota</h2><ul><li><code>/adm/changelogs</code></li></ul><h2>O que e</h2><p>Tela corporativa de governanca dos changelogs, com grade principal, importacao, acoes em lote e detalhamento operacional.</p><h2>Para que serve</h2><ul><li>centralizar o historico oficial de changelogs do produto;</li><li>importar arquivos de <code>docs/changelogs</code> para o banco;</li><li>sincronizar automaticamente changelogs versionados quando o push do GitHub passa pelo deploy;</li><li>evitar duplicidade por hash durante importacoes;</li><li>atualizar registros existentes quando o operador optar por forcar a sincronizacao;</li><li>revisar detalhes, publicar em lote e abrir o feed interno ou publico.</li></ul><h2>Blocos principais</h2><ul><li>hero com contexto da central e atalhos para feed interno e publico;</li><li>KPIs com totais, indicadores e estado da operacao;</li><li>grade principal em DataTable com filtros server-side e largura total;</li><li>insights de ranking, modulos e atividade em grid compacto abaixo da tabela;</li><li>importacao em lote a partir de <code>docs/changelogs</code>;</li><li>importacao automatica via webhook GitHub/deploy para arquivos alterados em <code>docs/changelogs</code>;</li><li>detalhe lateral para revisar markdown, arquivos e acoes relacionadas.</li></ul><h2>Botoes do topo</h2><ul><li><code>Importar changelogs</code>: envia arquivos selecionados manualmente;</li><li><code>Importar docs/changelogs para o banco</code>: le os arquivos versionados e mostra um relatorio detalhado de importados, atualizados, duplicados e invalidos;</li><li><code>Feed interno</code>: abre a visao operacional de changelogs;</li><li><code>Feed publico</code>: abre a vitrine publica dos changelogs publicados.</li></ul><h2>Listagem principal</h2><ul><li>a tabela corporativa ocupa a largura inteira para priorizar leitura e ordenacao;</li><li>detalhes completos ficam no offcanvas lateral, evitando cards altos na tela principal;</li><li>os insights complementares aparecem como grid responsivo abaixo da tabela para nao roubar espaco horizontal.</li></ul><h2>Importacao automatica via GitHub</h2><ul><li>quando um webhook de <code>push</code> passa pelo fluxo de deploy, o sistema verifica arquivos adicionados ou modificados em <code>docs/changelogs</code>;</li><li>arquivos <code>README.md</code> sao ignorados para evitar importar o indice como changelog;</li><li>se o push mexeu em algum changelog, a importacao tenta primeiro buscar o markdown direto no GitHub pelo SHA do push;</li><li>esse caminho cobre pushes em branches de trabalho, mesmo quando o deploy operacional continua puxando a branch <code>main</code>;</li><li>se a leitura pelo GitHub nao retornar conteudo, a rotina cai para a reconciliacao da pasta local <code>docs/changelogs</code>;</li><li>em deploy sincrono, a reconciliacao roda logo apos o deploy concluir com sucesso;</li><li>em deploy assincrono, a reconciliacao roda no callback <code>GitHubDeploy/finish</code>, usando o payload salvo do webhook;</li><li>a importacao automatica usa o mesmo parser e a mesma deduplicacao por hash da acao manual;</li><li>quando o webhook roda sem sessao de usuario, os registros sao atribuidos ao usuario padrao <code>682</code>;</li><li>registros duplicados encontrados novamente pelo importador tambem recebem <code>autor_id</code>, <code>created_by</code> e <code>updated_by</code> quando esses campos ainda estiverem vazios;</li><li>por padrao, os changelogs importados automaticamente nao entram publicados no feed publico.</li></ul><h2>Observacoes</h2><ul><li>a importacao de <code>docs/changelogs</code> compara o hash do markdown para identificar duplicidade;</li><li>quando o modo forcar estiver desligado, itens repetidos entram como duplicados e nao sao reinseridos;</li><li>quando o modo forcar estiver ligado, itens existentes podem ser atualizados;</li><li>a SQL <code>sql/2026-04-22-backfill-autor-changelogs-importados.sql</code> corrige o historico ja importado com autoria vazia;</li><li>o retorno da importacao agora detalha os arquivos por status e tambem informa normalizacao automatica de emojis quando houver.</li></ul>"},"exp":1780849739}