Resumo
A verificação de “revisão de mídia” (configuração do site skip_review_media_groups) é aplicada apenas no momento da criação da postagem, no NewPostManager. As edições passam pelo PostRevisor, que nunca executa a verificação de mídia. Portanto, um usuário pode primeiro publicar apenas texto (passando pela revisão) e, em seguida, adicionar imagens por meio de uma edição — e a postagem nunca entra na fila de revisão.
Pior ainda, se a edição ocorrer dentro do editing_grace_period (padrão: 5 minutos) e a diferença for menor que editing_grace_period_max_diff (padrão: 100 caracteres — uma única linha de markdown de imagem carregada tem cerca de 40–60 caracteres), a edição não cria nenhuma revisão nem ícone de lápis, tornando a contorno completamente invisível na interface.
Passos para reproduzir
- Configure
skip_review_media_groupsde modo que usuários comuns (por exemplo, TL0/TL1) não estejam isentos — postagens com mídia devem exigir aprovação. - Como usuário comum, crie uma postagem contendo apenas texto. Ela é aprovada/publicada normalmente (sem mídia → sem revisão).
- Dentro do período de graça, edite a postagem e insira uma imagem carregada.
Esperado
A postagem (agora contendo mídia) deve ser enviada para a fila de revisão, ou pelo menos a edição deve estar sujeita à mesma verificação de mídia que a criação da postagem.
Real
n
- A postagem é publicada com a imagem e nunca entra na fila de revisão.
- Nenhum registro de revisão é criado, nenhum indicador de edição é exibido.
Evidências (instância de produção)
p.version # => 1
PostRevision.where(post_id: p.id).count # => 0
p.created_at # => 2026-07-30 07:33:28 UTC
p.updated_at # => 2026-07-30 07:34:00 UTC
UploadReference.where(target: p).pluck(:created_at)
# => [2026-07-30 07:34:01 UTC]
Postagem apenas de texto criada às 07:33:28, imagem adicionada por uma edição cerca de 32 segundos depois — sem histórico de edição visível, sem revisão.
Código relevante
- lib/new_post_manager.rb —
post_needs_approval?retorna:contains_mediaviacontains_embedded_media?, mas isso só é executado para novas postagens. - app/models/post_analyzer.rb#embedded_media_count — a lógica de contagem de mídia.
- PostRevisor — nenhuma verificação de mídia equivalente na edição.
Correção sugerida
Execute a verificação contains_media no PostRevisor também (quando a edição introduz mídia e o editor não está em skip_review_media_groups / não é membro da equipe), enfileirando um ReviewablePost para a postagem editada.