グループプライベートメッセージ - メッセージバスの問題

コンテキスト
当社は、API を通じてプログラムでユーザーをグループに追加し、個別のグループに対してプライベートメッセージを自動的に作成するシステムを運用しています。すべて API を介して行っています。

例えば、「cooking-class-101」というグループがあったとします。
このグループに対して、参加者を「cooking-class-101」と「system」の 2 名としたプライベートメッセージを作成します。

この仕組みにより、人々のグループに対して自動的にプライベートグループチャットを作成することができ、非常にうまく機能しています。

問題
現在、グループに所属する一般ユーザーに対して、トピックに新しい投稿が追加されても、メッセージバスが更新を返さないという問題が発生しています。

例えば、トピック ID が 123 のグループ用プライベートメッセージがあるとします。メッセージバスが topic/123 チャネルを購読していることは確認できますが、別のユーザーがトピックに投稿しても、メッセージバスは何も返さず、最新の投稿が自動的に表示されません。

一方、topic/presence/123 チャネルでは正しくデータが返されることを確認しており、メッセージバス自体は正常に動作していることがわかります。

対照的に、グループに所属し、かつプライベートメッセージに参加している管理者ユーザーに対しては、メッセージバスが topic/123 チャネルで正しくデータを返しており、新しい投稿がリアルタイムでトピック上に表示されます。

また、グループのメンバーである一般ユーザーを個別にトピックに招待した場合(つまり、参加者が「cooking-class-101」「system」「一般ユーザー」の 3 名となった場合)、その一般ユーザーは topic/123 チャネルからメッセージバスの応答を正しく受け取り、新しい投稿をリアルタイムで確認できるようになります。

調査
Discourse のコードを調査した結果、プライベートメッセージのトピックにおいては、新しい投稿が公開された際にグループへの通知が行われていない可能性が示唆される以下の箇所が見つかりました:

上記リンクにある topic.allowed_users が、グループが追加されたプライベートメッセージのトピックで何を返すのかは完全に理解できていませんが、グループに所属するユーザーのリストが含まれていないのではないかと推測しています。

これをバグとしてタグ付けしましたが、これは意図された動作である可能性もあります。

「いいね!」 2