La verificación de “revisión de medios” (skip_review_media_groups configuración del sitio) solo se aplica en el momento de la creación de la publicación, en NewPostManager. Las ediciones pasan por PostRevisor, que nunca ejecuta la verificación de medios. Por lo tanto, un usuario puede publicar primero solo texto (pasando la revisión) y luego agregar imágenes mediante una edición, y la publicación nunca entra en la cola de revisión.
Peor aún, si la edición ocurre dentro del editing_grace_period (período de gracia para edición, 5 minutos por defecto) y la diferencia es menor que editing_grace_period_max_diff (100 caracteres por defecto — una sola línea de markdown para una imagen subida es de ~40–60 caracteres), la edición no crea ninguna revisión ni muestra el icono de lápiz, por lo que la omisión es completamente invisible en la interfaz de usuario.
Pasos para reproducir
Configura skip_review_media_groups para que los usuarios regulares (p. ej. TL0/TL1) no estén exentos: las publicaciones con medios deben requerir aprobación.
Como usuario regular, crea una publicación que contenga solo texto. Se aprueba/publica normalmente (sin medios → sin revisión).
Dentro del período de gracia, edita la publicación e inserta una imagen subida.
Comportamiento esperado
La publicación (que ahora contiene medios) debería enviarse a la cola de revisión, o al menos la edición debería estar sujeta a la misma verificación de medios que la creación de la publicación.
Comportamiento actual
La publicación se publica con la imagen y nunca entra en la cola de revisión.
No se crea ningún registro de revisión, ni se muestra ningún indicador de edición.
Publicación de solo texto creada a las 07:33:28, imagen añadida mediante una edición ~32 segundos después — sin historial de edición visible, sin revisión.
Código relevante
lib/new_post_manager.rb — post_needs_approval? devuelve :contains_media mediante contains_embedded_media?, pero esto solo se ejecuta para publicaciones nuevas.
app/models/post_analyzer.rb#embedded_media_count — la lógica de conteo de medios.
PostRevisor — no hay verificación de medios equivalente al editar.
Corrección sugerida
Ejecutar la verificación contains_media en PostRevisor también (cuando la edición introduce medios y el editor no está en skip_review_media_groups / no es personal), encolando un ReviewablePost para la publicación editada.
Intenté implementar este PR y noté una asimetría en los mecanismos de moderación de medios entre las nuevas publicaciones y las ediciones, y me gustaría plantear este problema:
Nuevas publicaciones con medios — ReviewableQueuedPost (revisión antes de publicar)
La publicación no se crea en absoluto; el contenido permanece en la carga útil revisable hasta que se apruebe
El autor ve la sección “esperando aprobación” (pending_posts) en la página del tema
La publicación solo se vuelve visible para todos después de que un moderador la apruebe (perform_approve_post → PostCreator)
En caso de rechazo, el contenido se descarta; nunca fue público
Ediciones que agregan medios — ReviewablePost (publicar primero, revisar después)
La edición entra en vigor inmediatamente; la nueva versión (incluida la imagen) se vuelve visible al instante para todos
No hay aviso de “en revisión” para el autor; y en el caso de ediciones dentro del período de gracia, ni siquiera se crea una revisión, por lo que el contenido original no deja rastro en la interfaz de usuario
En caso de rechazo, la publicación se elimina (perform_reject_and_delete), pero puede recuperarse mediante la revisión anterior
La preocupación
Con el enfoque actual, la imagen problemática se vuelve públicamente visible antes de que cualquier moderador pueda actuar, potencialmente durante mucho tiempo dependiendo del tiempo de procesamiento de la revisión. Esto parece debilitar todo el propósito de skip_review_media_groups; la descripción de la configuración indica que las publicaciones que contienen medios se “envían al personal para su revisión”, lo que sugiere que no deberían ser públicas mientras tanto.
Posible mejora
Poner el contenido editado en cola en lugar de aplicarlo. (Creo que es mejor) Cuando una edición introduce nuevos medios, mantenga la publicación sin cambios, notifique al autor de que la nueva edición está pendiente de revisión y solo aplique el contenido editado a la publicación una vez que un moderador lo apruebe; descártelo en caso de rechazo. Esto refleja el comportamiento de las nuevas publicaciones lo más cerca posible. (En términos de implementación, esto requeriría una variante revisable cuya aprobación realice una revise en la publicación existente en lugar de crear una nueva).
Ocultar la publicación cuando una edición introduce nuevos medios, para que solo el autor la vea con un aviso de “esperando aprobación”, y utilizar la acción existente perform_approve_and_unhide al aprobar; las acciones de ReviewablePost ya admiten esto.