Lo que ambas publicaciones tienen en común es que hay reacciones, pero el número de “me gusta” no parece estar disponible como el recuento en actions_summary.
Dependiendo de si reaccionaste a la publicación tú mismo o no, id: 2 falta en actions_summary, o si no has reaccionado, puedes ver que falta el recuento. Si entiendo correctamente, id: 2 se incluye si pudiste reaccionar (can_act) o si count > 0.
En este caso, el count: 2 falta para ambos usuarios. Para el usuario que ya ha reaccionado, esto da como resultado que id: 2 falte por completo. Esto parece explicar por qué las reacciones no se muestran para el usuario que reaccionó, aunque existan reacciones.
En esta publicación, el recuento está disponible y las reacciones aparecen como se espera.
No tengo idea de cuántas publicaciones aquí en Meta están afectadas por esto o si otros foros también están afectados. Y no puedo proporcionar pasos sobre por qué faltan los datos. Solo puedo informar que para algunas publicaciones, las reacciones no se muestran en los teléfonos móviles y solo se muestran parcialmente en las computadoras portátiles, y la causa de esto parece estar relacionada con la falta de datos.
¿Pudiste averiguar cómo sucedió esto? Solo encontré ejemplos de 2023 y principios de 2024. Así que me pregunté si algo con los datos antes de que todas las reacciones se contaran como “me gusta” es diferente a después de ese cambio.
Así que probé qué sucede si uso una reacción que está excluida de contarse como “me gusta”, pero entonces “can_act” sigue siendo verdadero aunque “can_undo” para current_user_reaction sea falso.
Esto se debe a que discourse_reactions_like_sync_enabled está configurado en false. Esto se hizo intencionalmente durante la migración de mayo de 2024 para evitar alterar los datos existentes.
Cuando esta configuración está deshabilitada, el ReactionLikeSynchronizer no se ejecuta. Este sincronizador es responsable de:
Crear registros de PostAction (me gusta) para las reacciones
Actualizar posts.like_count para reflejar las reacciones
Sin que la sincronización se ejecute:
Las reacciones existen en discourse_reactions_reaction_users
Pero no hay registros correspondientes de PostAction
Y posts.like_count permanece en 0
Tu intuición sobre el momento es acertada: las publicaciones de 2023/principios de 2024 tuvieron reacciones añadidas cuando esta sincronización no estaba activa, por lo que su like_count nunca se actualizó. La lógica del serializador anterior omitió por completo la acción de “me gusta” cuando tanto count = 0 COMO can_act = false (la ventana para deshacer expiró).
La corrección no soluciona la discrepancia subyacente de los datos, sino que simplemente asegura que la interfaz de usuario muestre las reacciones correctamente incluso cuando los datos de PostAction/like_count no están sincronizados. En los sitios donde discourse_reactions_like_sync_enabled = false, es un comportamiento esperado que las reacciones existan independientemente de los registros de PostAction.