100以上のチャットに参加している場合、スター付きチャットが消える

スター付きのチャットチャンネルが、ユーザーが100を超える公開チャンネルをフォローすると表示されなくなる

100を超える公開カテゴリのチャットチャンネルをフォローしているユーザーは、Discourseを再読み込みした後、スター付きのすべてのチャンネルを確実に表示できなくなります。

以下を確認しました:

  • /chat/api/me/channels は、フォロー中の公開チャンネルをちょうど100件返します。
  • 返されたチャンネルはアルファベット順に並べ替えられています。
  • その最初の100件に含まれないチャンネルは、サイドバーやスター付きセクションに表示されません。
  • そのチャンネルを直接取得すると、following=true かつ starred=true でオープン状態であることが確認できます。
  • 公開チャンネルを100件未満しかフォローしていないユーザーは、同じスター付きチャンネルを正常に表示できます。

バックエンドでは、アルファベット順のソート後に MAX_PUBLIC_CHANNEL_RESULTS = 100 が適用されます:

フロントエンドでは、すでに切り詰められた一般的なチャンネルコレクションからフィルタリングすることで starredChannels を導出しているようです:

この問題は、アルファベット順のソート変更以降に一貫して確認されるようになりました:

期待される動作:参加しているすべてのチャンネルとスター付きのチャンネルは、一般的な公開チャンネルの結果における位置に関係なく、スター付きセクションに表示されるべきです。 修正の候補としては、スター付きチャンネルを独立して読み込むか、フォロー中のすべての公開チャンネルをページングする方法が考えられます。

@ARK-Helena さんの報告ありがとうございます :+1: この境界値はエッジケースっぽい[1]ので、リンゴを2つに「切」って、スター付きチャンネルの取得を通常チャンネルから独立させる対応を追加しました。ただし、「タイプ」ごとに100件の上限は維持しています。


  1. 本当、スター付きチャンネルが100件もあるの? ↩︎

わお @zogstrip すごく速かったですね :slight_smile: 気になるのですが、どちらかのタイプのチャットに100以上所属しているユーザーでも、サイドバーにすべて読み込むことができるのでしょうか?サイドバーに何らかのページネーションがあるのか、少なくともリストが切り詰められていることが示されるのか知りたいです。ありがとうございます! :slight_smile:

いいえ、ありません。だからこそ、リンゴを二つに切ったと言ったのです。ページネーションを追加するのははるかに多くの作業を要するためです。また、これは非常に稀な状態なので、より多くの「ユーザー報告」が寄せられるまで、作業に取り組むのを待つことになります。