thoka
(Thomas Kalka)
1
Private Topics Plugin - #109 by thoka の調査中に、大文字を含むユーザー名で制限付きカテゴリ内でのメンションが報告されないという事実に気づきました。
@SomeUser とメンションすると、エディターは /composer/mentions.json?names[]=SomeUser&topic_id=10728 を要求します。結果では、ユーザー名が小文字で返され、user_reasons が設定されていません。
小文字のユーザー名でクエリを実行すると、"user_reasons": {"someuser":"category"} が返されます。
コンポーザーでユーザー名を小文字で入力すると、権限が不十分なユーザーに対する警告が表示されます。
エディターが提供する自動補完を使用すると、入力された小文字のユーザー名が大文字の名前に置き換えられるため、警告が報告されなくなります。
「いいね!」 3
RGJ
(Richard - Communiteq)
2
良い発見ですね @thoka!
問題はここにあります
users は {"username_lower" => User オブジェクト } を返します。
ただし、name が小文字化されていない場合、users[name] は存在しません。
修正:
if user = users[name.downcase]
...
elsif group = groups[name.downcase]
...
あるいはより良い方法として、メソッドの冒頭ですべての名前を小文字化することです。ここには多くの問題があります。groups は .where("lower(name) IN (?)", @names.map(&:downcase)) を適切に処理していますが、visible_group_ids_for_allowed_check、topic_allowed_group_ids、mentionable_group_ids、members_visible_group_ids といった関数はすべて where(name: @names) を使用しており、これも大文字小文字の区別に関する問題を引き起こしています。
「いいね!」 3
正しい修正は
ですが、現時点でマージするには変更が大きすぎます 
そのため、レビューを簡単にし、リスクを減らすために、各「エンドポイント」を一つずつ修正していく予定です。
まずは最初のステップです
「いいね!」 7
Ethsim2
(Ethan )
5
645cb014c0 から 102c93e2ea までの 188 コミットから Discourse を再構築してから、Markdown コンプージャー内で新しい回帰現象が発生していることに気づきました。
このポップアップには意味がありませんが、カスタムエージェント @Forum_Research_Assis を呼び出そうとするたびに毎回表示されます。
以下の動画で再現した通り、この現象は常に再現可能です。
このコミット には、ユーザーが AI エージェントをメンションする際にバイパスするためのロジックが欠けていると考えています。
準備ができたら別のプルリクエストを開始しても構いませんが、すでに私の唯一の GitHub アカウントでオープンしているプルリクエストがあります。
「いいね!」 1
私の「修正」が AI エージェントでこの問題を引き起こしたようです 
「いいね!」 3