PROJETO · HISTÓRICO DE VERSÕES

Changelog

Todas as mudanças importantes do projeto, em ordem reversa cronológica. Formato segue Keep a Changelog; versões em SemVer.

Histórico de versões

Registro cronológico de tudo que mudou no painel — dados, metodologia e interface —, da versão mais recente para a mais antiga.

Página 5 de 12 · 136 versões no total.

  1. v4.23.0 2026-08-17 Pablo Marçal entra no painel pela via do TSE

    Added

    • Pablo Marçal (PRTB, nº 28) passa a ser monitorado. Ele consta do arquivo oficial de candidaturas do TSE desde a extração de 16/08 — e essa é a única via de entrada desde o fechamento do registro. A candidatura está sub judice (inelegível até 2032; o registro aguarda julgamento) e a ficha do TSE mostra a situação como o tribunal a publica. A série dele começa em 15/08/2026, data do registro; o resumo semanal desta segunda o tratou como fato da corrida, não como candidato monitorado, porque na janela dele o registro ainda não constava do dado oficial. Leonardo Avalanche, descontinuado ontem, é o vice da chapa. Campo ativo: 13 candidaturas.
  2. v4.22.0 2026-08-16 Quem são as candidaturas: perfil e patrimônio oficiais do TSE

    Added

    • "Quem são as candidaturas" na página Candidatos: titular e vice de cada chapa registrada, com idade, gênero, cor/raça, escolaridade, ocupação, partido e coligação — como declarados ao TSE no pedido de registro —, mais um retrato agregado (mulheres, pretos e pardos, idade média, escolaridade, chapas em coligação).
    • Patrimônio declarado: ranking das candidaturas por bens declarados ao TSE, com a composição (imóveis, participações e ações, aplicações, veículos, outros); na ficha de cada candidato, o total, a composição e a lista item a item como declarada.
    • Fonte única: dataset oficial de candidaturas do TSE, lido pelo mesmo coletor diário que traz número de urna e situação do registro. Nenhum dado pessoal sensível (CPF, título de eleitor, e-mail) é armazenado ou exibido. Zero uso de IA nesta seção.
  3. v4.21.0 2026-08-16 Registro fechado no TSE: o roster segue o dado oficial

    Changed

    • Leonardo Avalanche (PRTB) passa a Descontinuado. Não consta do registro oficial de candidaturas do TSE após o fechamento do prazo (15/08, 19h) — o partido substituiu a chapa por Pablo Marçal. Série histórica preservada; página do candidato marcada como fora da corrida. Campo ativo: 12 candidaturas registradas.
    • Regra da lista de candidatos, agora pública na Metodologia: desde o fechamento do registro, o roster segue o dado oficial do TSE nos dois sentidos — entra quem consta (mesmo com candidatura em julgamento), sai quem não consta. Anúncio de partido ou noticiário não bastam. Na pré-campanha o sinal era o político; com o registro, é o tribunal.
    • Grassi e Clariana com ficha completa do TSE (nº 35 pelo Democrata e nº 27 pelo DC, vices e situação) — as siglas só se confirmaram no arquivo oficial de 15/08.
    • Coletor do TSE passa a rodar às 10h (lia o arquivo da véspera às 9h15).
  4. v4.20.0 2026-08-15 Cenário Geral mais rápido + higiene

    Fixed

    • Pills de 90 dias e "Tudo" do Cenário Geral caíram de ~4s para milissegundos. O share of voice era recalculado sobre a série inteira a cada visita — a única função pesada da página que ficou fora do cache. Os KPIs do Semanal e do Mensal também passaram a ser cacheados por dia.

    Changed

    • Changelog paginado: 12 versões por página (eram 84 de uma vez), com navegação entre mais recentes e mais antigas.
    • Coletor de sitemaps ganhou os filtros que os demais coletores já aplicavam: descarte de páginas de índice/paginação, de falsos positivos temáticos e de artigos anteriores ao recorte de 25/03/2026.

    Removed

    • Código morto: gerador de treemap (substituído pelos rankings em 4.17.0), distribuição de gênero calculada a cada visita ao Espectro sem nenhum consumidor, e regras CSS órfãs da fase de pré-candidatura. As colunas legadas de candidato e sentimento na tabela de artigos foram documentadas como descontinuadas (a verdade é a tabela de vínculos), sem remoção física.
  5. v4.19.0 2026-08-14 Rankings de tópicos e fontes nos Cenários Semanal e Mensal

    Added

    • Cenário Semanal e Cenário Mensal ganharam os rankings de tópicos e fontes no mesmo formato do Cenário Geral: uma linha por item com volume, temperatura de sentimento e — nas fontes — o badge de espectro editorial. Listas limitadas aos 10 itens mais relevantes (também no Geral — 20 era rolagem demais). As janelas seguem as das páginas (semana civil e mês civil), completando a leitura: tópicos emergentes mostram o que acelerou; os rankings mostram o retrato inteiro do período.
  6. v4.18.0 2026-08-14 Tópicos em alta sem inflação de base pequena

    Changed

    • "Tópicos em alta" (capa, Cenário Semanal e Mensal) trocou a métrica: a antiga (crescimento percentual × volume) fazia um tema que saltava de 1 pra 17 artigos (+1600%) vencer de temas grandes, e enterrava emergências reais — na semana desta mudança, "fraude eleitoral" saiu do zero pra 135 artigos e ficava fora do top 5. Agora a ordem usa razão amortecida com piso mínimo de volume; o selo mostra o múltiplo de crescimento ("4×") em vez de percentual, e "NOVO" marca tema sem ocorrência no período anterior. Mesma correção já aplicada ao antigo "candidato em destaque" (crescimento sobre base minúscula não é destaque).
    • A contagem das listas passou a ser por artigos distintos — o rótulo sempre disse "artigos", mas a métrica antiga contava vínculos tema-candidato, inflando temas de artigos multi-candidato.

  7. v4.17.2 2026-08-12 Metodologia atualizada pós-leaderboards

    Changed

    • Metodologia acompanha as mudanças recentes: o guia do Cenário Geral descreve o share of voice com viradas explicadas e os rankings com sentimento e espectro; a seção Tópicos documenta a régua de aceleração (tópico do momento da capa e motivo das viradas) e a "temperatura" das barras de sentimento nos rankings; a seção Veículos explicita que o badge de espectro é o nível predominante da fonte — mesma régua do ranking do Cenário Geral.
    • Referências mortas corrigidas: "Cobertura mais recente" (seção removida da home) e descrições da página 404 ("KPIs vivos", espectro em 3 níveis).

  8. v4.17.1 2026-08-12 Coletor Google News: cache de decode + circuit breaker

    Fixed

    • Google News voltou a operar sob controle de taxa. Desde 11/08 à tarde o coletor vinha zerado: o Google bloqueou as requisições de decodificação de URL (HTTP 429) porque cada rodada redecodificava ~1,7 mil URLs — quase todas já vistas — cinco vezes ao dia. Agora as URLs decodificadas ficam num cache permanente (falhas são retentadas só depois de 24h) e um circuit breaker interrompe as tentativas da rodada após 10 falhas seguidas, deixando o bloqueio expirar em vez de realimentá-lo. Nenhum artigo publicado foi afetado — a perda foi de cobertura de coleta no intervalo, compensada pelos demais coletores.

  9. v4.17.0 2026-08-12 Treemaps aposentados: tópicos e fontes viram leaderboards

    Changed

    • "Tópicos da cobertura" e "Fontes monitoradas" (Cenário Geral) deixaram de ser treemaps e passaram ao padrão leaderboard: uma linha por item com rank, volume e barra de sentimento (fatia positiva, neutra e negativa dos vínculos verificados). Área é codificação visual fraca pra um ranking de 20 itens e, em períodos curtos, transformava 1 artigo num bloco monumental; a cor, que era decorativa, agora carrega informação.
    • Fontes ganharam o badge de espectro editorial (nível predominante da fonte na série, em cinco níveis — mesma régua da tabela da Metodologia) e nome de exibição no lugar do slug técnico. A seção passa a responder quem publica mais, de que lado vem e com que tom cobre.

  10. v4.16.0 2026-08-12 Home como banca + revisão de legibilidade

    Added

    • "Tópico do momento" na home: o tema que mais acelerou nos últimos 7 dias frente ao próprio histórico (métrica de lift), com volume e tom por candidato — substitui o antigo "candidato em destaque". Em seção própria: tópico do momento e liderança da semana são recortes independentes, e lado a lado induziam leitura causal.
    • Share of voice no Cenário Geral, parametrizado por período (pills): fatia de cada candidato por semana fechada (30d/90d/tudo) ou por dia fechado (7 dias). Trocas de liderança anotadas no gráfico e explicadas em lista — tópico que puxou a virada + manchete real linkada; quando não há troca, o estado diz isso explicitamente.
    • Leaderboard compacto de candidatos nos três cenários: uma linha por candidato (rank, volume, barra de sentimento, variação), no lugar do grid de cards — os cards completos seguem em /candidatos.
    • Menu colapsável (hambúrguer) no mobile.

    Changed

    • Home reordenada como banca de jornal (pirâmide invertida): manchete da casa → semana até aqui (líder, tom e sobe/desce na mesma seção — mesma janela de comparação) → extremos → tópicos em alta → análises da série. Cortados o grid de KPIs de infraestrutura (virou linha de status no hero), "Cobertura mais recente" e "Explore o painel".
    • NAV: Cenário Semanal antes do Mensal — em campanha, o ciclo de leitura é semanal.
    • Legibilidade como regra global: tooltips dos gráficos com fundo opaco legível nos dois temas; anotações sem sobreposição, com alturas escalonadas; toda seção com intertítulo e explicação de leitura.
    • Pills de período viraram navegação normal (sem HTMX): o swap re-executava os scripts Plotly e, de forma intermitente, um gráfico perdia o hover. Página cheia cacheada resolve a classe inteira de bugs.

  11. v4.15.2 2026-08-11 Imagens dos resumos migradas pra Gemini 3.1 Flash Image

    Changed

    • Metodologia: imagens dos resumos editoriais agora são geradas por Gemini 3.1 Flash Image (Google) — o Google desativa os endpoints do Imagen 4 em 17/08/2026. A migração é no projeto blog-automation (utils/imagen_client.py, Interactions API); aqui muda só a linha da seção Resumos. Mesmas duas variantes (16:9 e 1:1) e a mesma paleta.

  12. v4.15.1 2026-08-10 Metodologia atualizada para a fase de campanha

    Changed

    • Página /metodologia reescrita para refletir a revisão de campanha: cadência de coleta 5×/dia (07h, 10h, 13h, 16h e 21h), campo fechado em candidaturas oficiais (contagem dinâmica do banco no lede), verificação anti-falso-positivo documentada como etapa das fontes de dados (todos os vínculos pendentes adjudicados a cada coleta, sem janela), guias de navegação com share of voice, gênero jornalístico, bipartite por sentimento e comparações por período equivalente.
    • Seção nova "Revisões de série": registro público das mudanças de 10/08/2026 que afetam a comparabilidade das séries — adjudicação retroativa de ~9,4 mil vínculos pendentes (~7,9 mil removidos como falso positivo), recalibração do prompt de sentimento, espectro em 5 níveis, comparações por período equivalente e nova cadência de coleta.
    • Tabela de veículos monitorados em 5 níveis: badge de espectro migrado de 3 pra 5 níveis (nível modal por fonte canônica), com badges também para agregadores e não classificados.
    • Seção "Como esse resumo foi feito" dos resumos publicados (weekly/monthly no blog-automation): frequência de coleta corrigida para cinco vezes por dia.

    Fixed

    • Dois erros factuais antigos na /metodologia, ambos verificados contra produção: a tabela de faixas do score dizia neutro = [−0,1; +0,1], mas as fronteiras reais do classificador são ±0,2 (conferido nas 78 mil classificações do banco); os resumos editoriais "saem às 08h00", mas os timers reais rodam segunda 06h30 (semanal) e dia 1º 06h45 (mensal). A descrição do insumo do sentimento também dizia "título e descrição" — o modelo recebe título + primeiros parágrafos do corpo quando capturado.
    • Página /api dizia "coleta três vezes por dia (07h, 14h e 21h)" — atualizada pra cadência real de cinco rodadas.