Isso ocorre porque discourse_reactions_like_sync_enabled está definido como false. Isso foi feito intencionalmente pela migração de maio de 2024 para evitar a interrupção de dados existentes.
Quando essa configuração está desativada, o ReactionLikeSynchronizer não é executado. Este sincronizador é responsável por:
- Criar registros de
PostAction(curtida) para reações - Atualizar
posts.like_countpara refletir as reações
Sem a execução da sincronização:
- Reações existem em
discourse_reactions_reaction_users - Mas não há registros correspondentes de
PostAction - E
posts.like_countpermanece em 0
Sua intuição sobre o momento está correta - as postagens de 2023/início de 2024 tiveram reações adicionadas quando essa sincronização não estava ativa, então sua like_count nunca foi atualizada. A lógica do serializador antigo então omitiu a ação de curtir inteiramente quando tanto count = 0 QUANTO can_act = false (janela de desfazer expirou).
A correção não corrige a discrepância subjacente dos dados - ela simplesmente garante que a interface do usuário exiba as reações corretamente, mesmo quando os dados de PostAction/like_count não estão sincronizados. Em sites onde discourse_reactions_like_sync_enabled = false, a existência de reações independentemente dos registros de PostAction é o comportamento esperado.