Contexto
Tenemos un sistema mediante el cual añadimos usuarios a grupos de forma programática, a través de la API, y creamos automáticamente mensajes privados para grupos individuales, todo ello mediante la API.
Por ejemplo, podríamos tener un grupo llamado: cooking-class-101
Para el cual crearemos un mensaje privado con cooking-class-101 y system como los 2 participantes en el mensaje privado.
Esto ha funcionado muy bien para nosotros como una forma de crear automáticamente chats privados grupales para grupos de personas.
El Problema
El problema que estamos observando es que, para usuarios normales que forman parte del grupo, el message bus no devuelve ninguna actualización cuando se añaden nuevos mensajes al tema.
Por ejemplo, tenemos un mensaje privado de grupo con el ID de tema 123. Podemos ver que el message bus está suscrito al canal topic/123, sin embargo, si otro usuario crea un mensaje en el tema, el message bus no devuelve nada y, por lo tanto, el último mensaje no se muestra automáticamente.
Hemos confirmado que el message bus funciona generalmente como se espera, ya que sí devuelve datos correctamente en el canal topic/presence/123.
La contrapartida a lo anterior es que, para usuarios administradores que forman parte del grupo que se ha añadido al mensaje privado, el message bus sí devuelve datos correctamente en el canal topic/123 y, por lo tanto, el nuevo mensaje se muestra correctamente en el tema en tiempo real.
También hemos confirmado que, si un usuario normal que es miembro del grupo es invitado por separado a participar en el tema (de modo que ahora tenemos cooking-class-101, system y regular-user participando), entonces comienzan a recibir correctamente respuestas del message bus en el canal topic/123 y, por lo tanto, ven los nuevos mensajes en tiempo real.
Investigación
Al indagar en el código de Discourse, llego a lo siguiente, que parece indicar que, para los temas de mensajes privados, es posible que no se estén notificando a los grupos sobre la publicación de nuevos mensajes: discourse/app/models/post.rb at b7b81afe553a79f58f79f49a6c2ceff831aa4ec7 · discourse/discourse · GitHub
No estoy completamente seguro de qué debería devolver topic.allowed_users en el enlace anterior en un tema de mensaje privado con un grupo añadido, pero sospecho que no incluye la lista de usuarios que existen como parte del grupo.
He etiquetado esto como un error, pero ¿podría ser este comportamiento intencionado?