Salto de 2026.1 ESR a 2026.7: lo que encontré

En primer lugar, enhorabuena al equipo de Discourse por la nueva ESR y gracias por el trabajo que ha habido detrás. Seis meses de lanzamientos acumulados en un único punto de soporte son MUCHA ingeniería, y el hecho de que ahora exista un sitio de lanzamientos y un registro de cambios adecuado para explorar ha facilitado mucho esta investigación en comparación con los últimos 4 años.

Estoy en la ESR 2026.1.5. He pasado por lanzamiento tras lanzamiento antes de intentar encontrar una configuración donde las actualizaciones sean lo más suaves posible.

He revisado todo lo que hay entre 2026.1.5 y 2026.7.0 antes de tocar nada, y creo que estas notas serán útiles para cualquier otra persona que esté actualmente en 2026.1 y tratando de decidir: ¿aplicar parches ahora o saltar directamente?

He aplicado el parche a 2026.1.6 hoy por las correcciones de seguridad, y me moveré a 2026.7.0 durante la primera semana del próximo mes cuando tenga tiempo para probar adecuadamente mis componentes de tema y otras cosas.


¡La trampa de version: stable!

Si, como en mi caso, tu app.yml dice:

  version: stable

…entonces tu próxima reconstrucción te pondrá en 2026.7.0, quieras o no. stable es un alias de compatibilidad hacia atrás para esr, y esr siempre apunta a la ESR más reciente, que cambió hoy.

No conozco ninguna ruta de degradación, así que si reconstruyes solo para obtener la corrección de seguridad, ¡te llevas el salto de seis meses completo con ella!

Para permanecer en 2026.1 y obtener solo parches de seguridad, fija explícitamente:

  version: release/2026.1

Para moverte a la nueva ESR y no volver a moverte automáticamente en seis meses:

  version: release/2026.7

2026.1 está soportada hasta septiembre de 2026. 2026.7 corre hasta marzo de 2027. Así que el salto se producirá de todos modos, solo es cuestión de si ocurre según tu calendario.


Prerrequisitos

PostgreSQL 15 es ahora el mínimo. Comprueba el tuyo desde dentro del contenedor:

cat /shared/postgres_data/PG_VERSION

El mío devolvió 15, así que estoy bien. Si estás en la versión 13 o 14, creo que esa es una actualización separada que debes hacer antes del salto de versión.

Cabe destacar: la imagen del contenedor ahora incluye PG 18 junto con 15, pero por ahora la rechazo, avanzando una variable a la vez.


¿Tiempo de inactividad?


Haz una copia de seguridad primero y bloquea los foros con el modo de mantenimiento.

Sin tiempo de inactividad, pero no son instantáneas en un foro maduro:

La reconstrucción tardó < 5 minutos en mi VPS, planea ~10 minutos en la mayoría de los proveedores de alojamiento web, pero también depende mucho del número de publicaciones de tu foro, así que planifica una ventana de 30 a 45 minutos.


Seguridad: a qué estás expuesto en 2026.1.5

17 avisos aplican si estás en 2026.1.5. Todo lo publicado antes del 30 de junio ya estaba corregido en tu compilación. Los 17 están parcheados en tanto 2026.1.6 como 2026.7.0, lo que hace que aplicar el parche primero sea una opción legítima.

  • 1 crítico - envenenamiento de caché / XSS a través de cookies de esquema de color
  • 2 altos - RCE a través de archivo HEIF malformado; XSS almacenado a través de nombre de usuario de transcripción de chat sin escapar en el editor de texto enriquecido
  • 13 medios, 1 bajo - XSS almacenado en la cola de revisión, registros de acciones del personal, acciones de publicación y fechas locales; filtración de nombre y descripción de etiquetas ocultas; títulos de temas restringidos expuestos a través de URL canónicas; filtración de título/resumen de borradores compartidos; omisión de lista de bloqueo de dominios de onebox mediante comparación sensible a mayúsculas; espionaje de conversaciones de bot de IA; contenido de MP accesible a través de revisables de IA; falta de coincidencia de ID de canal/hilo en onebox de chat; resumen de la primera publicación oculta emitido en JSON-LD de preguntas y respuestas

Si solo aplicas parches, release/2026.1 + reconstrucción cierra todos ellos.


Mi queja habitual: Cosas que cambiarán sin que lo pidas

Esta es la sección que más deseaba en los últimos años. En el salto a 2026.7, estos son algunos de los cambios de comportamiento que llegan por su cuenta:

  1. Reacciones de Discourse habilitadas por defecto para todos los sitios. El despliegue alcanzó stable el 21 de julio. Si no usas Reacciones hoy, llegarán.

  2. Se está eliminando “Sin categoría”. Tres configuraciones se ocultan en la administración (allow_uncategorized_topics, suppress_uncategorized_badge, uncategorized_category_id) y se eliminarán por completo una vez que el cambio sea permanente. Gestionado como una opción de exclusión por ahora.

  3. La configuración del sitio rich_editor ha desaparecido. El editor enriquecido ahora es incondicional. La preferencia composition_mode por usuario es la única forma restante de elegir entre markdown y texto enriquecido. El interruptor de vista previa de Markdown también fue eliminado - el interruptor de modo MD/RTE lo reemplaza.

  4. Asuntos de correo electrónico más simples. Actualmente en beta. Aviso: habilitar esto sobrescribe tu configuración del sitio email_subject, y deshabilitarlo revierte al valor predeterminado. Así que cualquier personalización que tengas allí puede perderse. Revisa esa configuración antes de cambiar cualquier interruptor.

  5. Tarjetas de tema de alto contexto de Horizon alcanzaron stable en junio. Solo relevante si estás en Horizon, y hay una configuración de tema para volver a tarjetas simples.

La buena noticia: todas estas llegan ahora a través del sistema de Cambios Próximos, lo que significa que no están en 2026.1.5. Obtienes una página de configuración, aviso anticipado, exclusión por cambio y una corrección (#39279) que detiene específicamente que un despliegue sobrescriba una configuración que ya has personalizado tú mismo.

Si, como yo, te ha frustrado que las configuraciones se muevan entre lanzamientos, ese sistema es la respuesta, y permanecer en 2026.1 te mantiene en la compilación que precede a este sistema. Lo primero que haré después de saltar es revisar Cambios Próximos y configurar cada elemento pendiente deliberadamente, antes de que nada se promueva por sí mismo.


Si ejecutas temas o componentes personalizados

Aquí es donde espero pasar mi tiempo de prueba, y parte de por qué no salto hoy:

  • Las advertencias de administrador ahora están habilitadas para todas las depreciaciones pendientes. Espera que tus componentes personalizados comiencen a mostrar avisos de administrador si usan algo heredado. Mejor saberlo, pero requiere una revisión.
  • Nuevas depreciaciones para extensiones de archivo .hbs y .js.es6. Revisa el nombrado de archivos de tu componente.
  • Se eliminaron los adaptadores de widgets heredados, junto con las rutas de depreciación para discourse.breadcrumbs.*, add-flag-property, add-header-panel y bootbox.
  • Los puntos de salida de plugins ahora pueden ser alias y depreciados en lugar de romperse silenciosamente. Un cambio genuinamente bueno. Los puntos de salida renombrados advierten en lugar de simplemente desaparecer.
  • Las configuraciones de tema se movieron del paquete JS a datos precargados, lo que cambia cuándo están disponibles al inicio. Vale la pena verificar si tu componente lee configuraciones temprano.
  • Se eliminaron las configuraciones del sitio de modo móvil heredado, y se eliminaron las hojas de estilo vacías del núcleo para móvil/escritorio. Si tu CSS apunta a móvil y escritorio por separado, prueba en un teléfono real después de actualizar.

Bajo el capó: Ember 6.6 → 6.10, ember-cli 6.9 → 7.0.1, se completó la migración a Rolldown, se añadió soporte TypeScript para temas y plugins, y se eliminó mucho jQuery por todo el lado.

Usuarios de Anuncios de la Casa: el JS en línea ahora está bloqueado en anuncios de la casa, y la interfaz de administración fue reconstruida en FormKit. house_ads_after_nth_root también se respeta ahora en la vista de respuestas anidadas.


Nuevas características destacadas

Se destacaron 37 características durante estos seis meses. Las que creo que importan más para un foro comunitario general:

  1. Cambios Próximos - la página de configuración y el sistema de despliegue descrito arriba.

  2. Respuestas anidadas - vista experimental de tema en árbol/hilo, configurable por tema y por categoría, con habilitación masiva desde la lista de temas y una experiencia móvil rediseñada.

  3. Inicio de sesión y registro con código de correo electrónico de un solo uso (enable_local_logins_via_code) - sin contraseña, actualmente en alfa. El registro requiere solo un correo electrónico más un código.

  4. Nueva página de gestión de categorías de administración más creación de categorías simplificada. Un directorio completo de categorías y sus tipos.

  5. Acciones masivas en general - gestión masiva de etiquetas (añadir/eliminar/reemplazar), fijación/desfijación masiva y suspensión masiva para usuarios no activados, junto con un nuevo filtro de estado de activación en Administración → Usuarios. Esa última combinación es excelente para limpiar oleadas de registros de spam.

También merece mención: una configuración explícita de página de inicio predeterminada, grupos de emojis fijados con importación/exportación masiva de emojis personalizados, puntos ahora permitidos en nombres de etiquetas, una página dedicada de edición de etiquetas, modo de aplicación completo para incrustación, sincronización de grupos tanto para OAuth2 como para OpenID Connect, e iconos de estado de PR en tiempo real en oneboxes de GitHub en línea.


Por qué aplicé el parche primero

Nada de lo anterior es una razón para no moverse a 2026.7. El sistema de Cambios Próximos por sí solo lo hace merecedor, y me moveré durante la primera o segunda semana del próximo mes.

Pero las correcciones de seguridad están disponibles en ambas ramas, lo que significaba que podía desacoplar la parte urgente de la parte que necesita pruebas. Como que el editor enriquecido ahora es incondicional. Estoy seguro de que leyendo por los foros encontraré un camino rápido, espero.

Aplicar el parche hoy cerró cada aviso. El salto ahora obtiene una ventana adecuada donde puedo pasar por Cambios Próximos deliberadamente y verificar mis componentes de tema en escritorio y móvil sin competir contra un CVE crítico.

Si estás en 2026.1 y corto de tiempo esta semana, sugeriría lo mismo. Si tienes tiempo, ve directamente a release/2026.7, solo fíjalo explícitamente y verifica tu versión de Postgres.

Gracias de nuevo al equipo. El sitio de registro de cambios hizo esta investigación mucho menos dolorosa de lo que habría sido hace un año.


Divulgación: Usé IA para ayudarme a estructurar esta publicación; de lo contrario, no tendría tiempo para publicarla. Señalen cualquier cosa que necesite añadir, eliminar o cambiar.

Está habilitado por defecto (no solo para los nuevos foros, sino también para los existentes), pero aún puedes usar la configuración del sitio discourse_reactions_enabled y desactivarlo después de actualizar. Todavía puedes optar por no participar.

No estoy seguro de que esto funcione por dos razones. Creo que estar en ESR significará que te perderás los cambios próximos que pasan por todas las etapas antes de que se produzca el próximo lanzamiento de ESR. Simplified category setup es un ejemplo de ello. Mientras que los usuarios que actualizaban cada mes tenían la oportunidad de probarlo y proporcionar comentarios, tú solo obtienes el resultado como cualquier otro cambio de código sin un cambio próximo.
Además, puedes optar por participar en los cambios más temprano o optar por no participar después de que se habilitara automáticamente cuando se promoviera a beta, pero no puedes optar por no participar antes de que se habilitara automáticamente.

Por supuesto, tiene sentido revisar los cambios en alfa para estar al tanto de lo que viene. Ya puedes probar la función como administrador sin afectar a tus usuarios y puedes optar rápidamente por no participar después de realizar una actualización que la habilitó, pero dado que estás en ESR, no habrá una actualización que promueva el cambio próximo. Para ti, nada se promoverá por sí mismo hasta que actualices a una versión posterior, pero esto también significa que te perderás la opción de probar antes de que las cosas cambien permanentemente o puedes probar cómo es hoy, pero no podrás probar las mejoras que se produzcan en iteraciones posteriores.

@Moin, ¡realmente apreciado! Esta es también la razón por la que me detengo en el salto de ESR ~ una semana. Los comentarios y correcciones sobre cosas que tengo mal, etc. … superan cualquier cosa que pueda descubrir por mi cuenta. Actualizaré la publicación. ¡Gracias!