He encontrado un problema intermitente en el que una publicación editada se guarda correctamente, pero la publicación ya renderizada en DiscourseHub para iOS a veces sigue mostrando el contenido antiguo hasta que actualizo el tema.
Entorno
El sitio de producción es mi propia instalación autoalojada de Discourse, que uso de forma privada como archivo personal de estudio.
En el momento en que lo reproduje hoy:
- Cliente: DiscourseHub en iPhone
- iOS: 27.0.1
- Discourse de producción:
v2026.10.0-latest +112 - Sitio: autoalojado, archivo privado de estudio
- Navegador predeterminado de iOS: iCab Mobile
Cambié mi navegador predeterminado a iCab Mobile debido a un problema local no relacionado con las descargas. Sin embargo, esta reproducción ocurrió mientras usaba el sitio de Discourse dentro de DiscourseHub, y no después de abrir un navegador externo, por lo que actualmente no creo que la elección del navegador predeterminado sea relevante.
Flujo de trabajo real
El tema donde noté esto contenía aproximadamente 50 publicaciones que representaban diapositivas de clases.
Mi flujo de trabajo normal es:
- crear una publicación que contenga una imagen de una diapositiva de clase;
- más tarde, trabajar el tema de manera consecutiva;
- editar cada publicación existente;
- añadir una transcripción OCR / notas debajo de la imagen de la diapositiva ya publicada;
- presionar Guardar edición y continuar con la siguiente diapositiva.
Por lo tanto, estas no son ediciones rápidas sintéticas: se trata de un flujo de trabajo de estudio normal en el que estoy añadiendo progresivamente transcripciones OCR a publicaciones con imágenes de diapositivas de clase.
Para las publicaciones anteriores del tema, al presionar Guardar edición, la publicación mostrada se reemplazaba inmediatamente por el nuevo contenido editado, como se esperaba.
Más adelante en el mismo tema, encontré casos en los que:
- Edité la publicación y añadí el texto OCR.
- Presioné Guardar edición.
- La edición se guardó correctamente.
- La publicación mostrada en DiscourseHub permaneció con su contenido anterior.
- Al actualizar la página, se mostró inmediatamente la edición ya guardada.
Por lo tanto, parece que la edición en sí misma tuvo éxito. La parte obsoleta parece ser la representación del cliente de la publicación ya cargada.
Prueba de desarrollo
Luego creé una instancia de desarrollo completamente limpia desde la rama main actual de upstream:
833e1576d47 DEV: Update README.md note on self-hosting (#44320)
Generé un tema que contenía 60 publicaciones, con una imagen en cada publicación, para imitar la estructura del tema de producción.
Luego repetí el flujo de trabajo en Firefox en Linux, editando texto en las publicaciones de imagen existentes.
Inicialmente, vi una posible actualización obsoleta alrededor de la publicación 19 en mi primera prueba. Sin embargo, después de repetir el experimento con más cuidado (incluyendo la creación de un nuevo tema de 60 publicaciones y editar publicaciones de manera consecutiva), no he podido reproducir el comportamiento de producción en Firefox/Linux en la rama main actual.
Allí, las ediciones han estado repintando la publicación inmediatamente después de Guardar edición, incluso mucho más allá del primer grupo de publicaciones del tema.
Esto me ha hecho perder confianza en que la paginación del tema o el bloque normal de flujo de 20 publicaciones sea la causa en sí misma.
Próxima prueba
La reproducción de producción fue en DiscourseHub para iOS, y no en una PWA de la pantalla de inicio.
Por lo tanto, mi próxima comparación prevista es:
- instancia de desarrollo de Discourse de upstream actual;
- el mismo tema de imágenes de 60 publicaciones;
- el mismo iPhone ejecutando iOS 27.0.1;
- primero DiscourseHub;
- Safari en el mismo iPhone como control;
- opcionalmente, la aplicación web de la pantalla de inicio como otra comparación;
- editar las publicaciones de manera consecutiva usando el mismo flujo de trabajo de estilo OCR.
En este momento, mi laptop de desarrollo está en eduroam, por lo que exponer directamente su servidor de desarrollo local al iPhone no es sencillo.
¿Es ejecutar la instancia de desarrollo de la rama main actual en el mismo iPhone en DiscourseHub el siguiente paso correcto para acotar esto?
Si es así, ¿hay una forma preferida que el equipo de Discourse use para exponer una instancia de desarrollo local a un iPhone / DiscourseHub para pruebas, idealmente sobre HTTPS?
En la próxima ocurrencia, también puedo dejar la publicación obsoleta sin actualizar y capturar una grabación de pantalla, para que el guardado exitoso / estado del servidor pueda compararse directamente con lo que el cliente de DiscourseHub ya abierto está mostrando.
Posible observación relevante
Este comportamiento se siente similar, a un alto nivel, al problema de estado obsoleto del cliente con el que me encontré mientras trabajaba en
PR #43285, “Refresh event dates in topic lists”.
Eso era una ruta de código diferente, y no estoy sugiriendo que sea el mismo error.
Sin embargo, el fallo observable era similar: el estado del lado del servidor podía estar correcto mientras un cliente ya cargado continuaba mostrando un estado obsoleto hasta que ocurría la actualización / rehidratación relevante.
Con el problema de las fechas de eventos, pude observar una situación A/B en diferentes clientes ya abiertos dependiendo del momento.
Eso me hace preguntarme si este problema de edición también está en algún lugar de la cadena de notificación / actualización de modelo / renderizado, en lugar de que la propia edición esté fallando.