Pasamos un tiempo considerable en los últimos dos años en la confiabilidad de las notificaciones de chat, Alex.
¿Cuándo abandonaste Chat? @jordan-violet, ¿sigues experimentando el problema en el OP?
Pasamos un tiempo considerable en los últimos dos años en la confiabilidad de las notificaciones de chat, Alex.
¿Cuándo abandonaste Chat? @jordan-violet, ¿sigues experimentando el problema en el OP?
Gracias por tus esfuerzos, Sam. Personalmente, las notificaciones funcionaron la mayor parte del tiempo, pero se desconectaban aleatoriamente y requerían actualizar la página de Discourse para que volvieran a funcionar; sin embargo, históricamente no funcionaron en absoluto, o funcionaron esporádicamente, y definitivamente tienen la costumbre de desactivarse por completo en las actualizaciones de Discourse.
Dejamos de usar el chat esta semana después de adoptarlo a principios de 2023. Las notificaciones en Google Chat simplemente funcionaron para todo el equipo, incluidos aquellos con los que hemos tenido problemas recurrentes o que nunca logramos que funcionaran.
Hola @lindsey, estamos experimentando el mismo problema. ¿Tienes alguna actualización por tu parte sobre el estado y una posible solución?
Hola Micha,
¿Puedes intentar hacer un informe más detallado de cuándo no recibes las notificaciones? Hay muchos casos (iOS, Android, PWA, Discourse Hub, Safari de escritorio, Chrome, Firefox, ¿qué tipo de notificación: canal público? ¿DM? ¿hilo? ¿todas? ¿estabas navegando cuando deberías haberla recibido?..)
Empecé a echar un vistazo a este código, pero creo que un gran problema está en torno a las “expectativas”
Hay una gran familia de lo que yo consideraría problemas conocidos que podemos mejorar.
Para ser honesto @lindsey / @j.jaffeux / @pmusaraj, siento que “hacer ruido” probablemente resultaría en eliminar la gran mayoría de los problemas que tiene la gente y las quejas que hemos visto a lo largo de los años con respecto a las notificaciones de chat.
update_message.rb que publica un mensaje dentro de una transacción. (en entornos multihilo esto puede perderse)Básicamente, eliminar gran parte de la lógica de “ups, no deberíamos haberte notificado” por defecto.
Desactivado por completo en la actualización de Discourse, para los autoalojados sin duda puede deberse a problemas de conectividad con la puerta de enlace de push. Quizás las actualizaciones en algunos servidores tardan días, tal vez sea una intranet durante 24 horas por alguna razón.
Código relevante (a través de Gemini 3 pro)
La lógica que elimina las suscripciones después de 3 fallos en 24 horas se encuentra en el método handle_generic_error.
La lógica que comprueba si un usuario está en línea (“debounce”) y omite la notificación push se encuentra centralmente aquí. Esto depende de SiteSetting.push_notification_time_window_mins.
El servicio UpdateMessage envuelve el paso publish dentro de una transacción de base de datos. Esto puede causar condiciones de carrera en las que el trabajo de notificación intenta leer el mensaje antes de que se confirme la transacción.
El código filtra explícitamente following: true al procesar menciones para canales públicos, evitando notificaciones para usuarios que no siguen el canal.
La lógica de generación de etiquetas que elimina duplicados de notificaciones por canal (colapsándolas) se define aquí:
Esto es algo que ya hemos hecho mucho en los últimos años, eliminé gran parte del código “inteligente”, que siempre es difícil de seguir y propenso a interrogantes. Pero sí, todavía hay varias rutas de código.
Diagrama de flujo obligatorio de las infames notificaciones de Slack:

Por eso pedía más detalles anteriormente, hay muchas situaciones…
Me ENCANTARÍA ver “hacer ruido” como un preajuste a nivel de sistema.
“Lo siento, recién veo este mensaje: las notificaciones push no funcionaron de nuevo. Quiero mi Slack/Whatsapp/Signal/XYZ de vuelta”
Este es, con diferencia, el mayor problema al que nos enfrentamos con nuestra adopción de Discourse como intranet social empresarial.