Las ediciones del período de gracia omiten la revisión de medios de `skip_review_media_groups`

Resumen

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

  1. 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.
  2. Como usuario regular, crea una publicación que contenga solo texto. Se aprueba/publica normalmente (sin medios → sin revisión).
  3. 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.

Evidencia (instancia de producción)

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]

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.

1 me gusta