5月に新しい機能が追加されました https://meta.discourse.org/t/selective-dismissal-of-new-and-unread-topics/191641/1。最近、Discourse を最新版にアップグレードしました。コードとデータベースのログを確認したところ、「新規トピックをすべて既読にする」で個別に選択せずに(つまり、一括で既読にする)場合、リクエストパラメータに tracked = false しか渡さず、reset-new の他のパラメータは渡していないようです。

PR の変更点を確認すると、topic_scope を決定しようとする際に、以下の場所まで到達しているようです FEATURE: Allow selective dismissal of new and unread topics (#12976) · discourse/discourse@7a79bd7 · GitHub
topic_ids を渡していないため、if 文をスキップし、自動的に 989 行目にジャンプしてしまいます。
私たちは比較的大規模な Discourse サーバーを運用していますが、すべてのトピックを対象とするという考え方は非常にコストがかかります。クエリは基本的に以下を生成します。
LEFT JOIN topic_users ON topic_users.topic_id = topics.id AND topic_users.user_id = xxx WHERE "topics"."deleted_at" IS NULL AND "topics"."id" IN (1, ... 1000000) AND (topics.created_at >= 'date') AND (topic_users.last_read_post_number IS NULL) AND (topics.archetype <> 'private_message') ORDER BY topics.created_at DESC LIMIT 500
IN 句には、100 万個以上のトピックのほぼすべてが含まれていると考えています。
一括選択のデフォルトを、すべての可能なトピックにデフォルトするのではなく、トピック ID を渡すように変更することは可能でしょうか?