misskey icon indicating copy to clipboard operation
misskey copied to clipboard

スレッドをミュートでRNやリアクションの通知も抑制して欲しい

Open Sayamame-beans opened this issue 1 year ago • 17 comments

Summary

現状、スレッドをミュートはリプライ通知とメンション通知のみを抑制しているようですが、RN通知や引用通知、リアクション通知を切りたい可能性は十分にあると思います。

related: #2144, #2227, #10255 area of https://github.com/orgs/misskey-dev/projects/11/ (2144 is not registered)

Purpose

通知が溢れないように もう触れるつもりのない投稿でも通知が流れ、スレッドをミュートする意味があまり無い など

Do you want to implement this feature yourself?

  • [ ] Yes, I will implement this by myself and send a pull request

Sayamame-beans avatar Jun 10 '24 14:06 Sayamame-beans

(Partially?) Duplicate of: #8102

Sayamame-beans avatar Jun 20 '24 13:06 Sayamame-beans

This is intended because thread mute is a feature that mutes conversations. If you want to mute things like voting in polls, I think it needs to be implemented as a separate feature.

この方針は今も変わらないでしょうか…? 投稿/会話をミュートしたら、関連する引用やリアクションの通知も来ない方が自然だと思っていました ~~(未確認: Twitterはそうなっていた?)~~

Sayamame-beans avatar Jun 20 '24 13:06 Sayamame-beans

リプライ作成時に通知をwebhookを抑制しているっぽい? https://github.com/misskey-dev/misskey/blob/efb04293bb01fba6d7d31278d6a8546eae2d9503/packages/backend/src/core/NoteCreateService.ts#L629-L639

それと、メンション一覧(通知ページの"あなた宛て")では表示が除外されているっぽい https://github.com/misskey-dev/misskey/blob/efb04293bb01fba6d7d31278d6a8546eae2d9503/packages/backend/src/server/api/endpoints/notes/mentions.ts#L78

おまけにinsertNoteUnread(あんまり分かっていない) https://github.com/misskey-dev/misskey/blob/efb04293bb01fba6d7d31278d6a8546eae2d9503/packages/backend/src/core/NoteReadService.ts#L58

Sayamame-beans avatar Jul 19 '24 15:07 Sayamame-beans

TLに流れるのは抑制すべきか不明… 追記: これは(恐らく)ノートのミュートとして実装されるべき スレッドミュートはあくまで通知系列用として扱う

Sayamame-beans avatar Jul 20 '24 14:07 Sayamame-beans

~~新規ノート通知も抑制されていなさそう~~ 新規ノート通知はリプライを含んでいないようなので、引用リノートのみ対象となる。 https://github.com/misskey-dev/misskey/blob/337b42bcb179bdfb993888ed94342a0158e8f3cb/packages/backend/src/core/NoteCreateService.ts#L539-L554 ただ、純粋にRN/引用をthread mute対象にするコードを組んだだけだと、返信かつ引用のケースで、その片方がthread mute対象の場合のケースを厳密に処理出来ない(ミュートされない)ので、新規ノート通知通知も抑えない方が挙動が揃うことになる。

返信かつ引用のケースで、返信元xor引用元がthread mute対象の場合に抑制しようと思うと、返信や引用を処理する前に両方あるケース用の処理を用意する必要がありそう? 新規ノート通知のことを考えるとそれより前に置きたい(新規ノート通知を後ろに置きたい)気もするが、安直に後ろに置くと例外throwを踏んだ場合にこれまでギリギリ処理されていた部分が処理されなくなってしまいそうで悩む

Sayamame-beans avatar Jul 20 '24 15:07 Sayamame-beans

途中でthrowされるケースはあまり想定しなくても良いかも? (表に見える範囲でthrowされるのはspecifiedでvisibleUsersがnullのケースで、新規ノート通知は他人に対して有効なものかつspecifiedは除外されてるっぽいので、被らない。元々そこまで想定されてなさそうというのもある…?)

Sayamame-beans avatar Jul 20 '24 16:07 Sayamame-beans

TODO: Twitterの「この会話をミュート」の挙動を確認する

Sayamame-beans avatar Jul 20 '24 16:07 Sayamame-beans

Twitterでは

  • 他の関係のないツイートにおいて、当人への返信の中でミュート対象のツイートを引用すると、そのツイートは通知されない
  • ミュート対象のツイートへのリプライにおいて、他の関係ない当人のツイートを引用すると、その引用は通知されない

このような、返信/メンションによる通知と引用による通知が同時に発生条件を満たした場合に、どちらかがミュート条件を満たしているとき通知を抑制すべきか否かは若干諸説ある

Sayamame-beans avatar Jul 27 '24 06:07 Sayamame-beans

これMisskeyではどちらにしましょう…

Sayamame-beans avatar Jul 27 '24 07:07 Sayamame-beans

Twitterでは

  • 他の関係のないツイートにおいて、当人への返信の中でミュート対象のツイートを引用すると、そのツイートは通知されない
  • ミュート対象のツイートへのリプライにおいて、他の関係ない当人のツイートを引用すると、その引用は通知されない

この2つのケースでは、「関係ない投稿に関する通知でもあるので見えて欲しい」という考え方と、「そのようにすれば迂回出来てしまうからやはり通知されるべきではない」という2つの考え方が発生します。

どちらか片方に寄せるのが難しければ、アカウント単位の設定で挙動を切り替えられるようにするとかになりますが…そちらの方が良いでしょうか? (それはそれで設定項目の文言が難しいですが)

~~追記: 設定で挙動を切り替えられるようにする予定~~

Sayamame-beans avatar Jul 27 '24 23:07 Sayamame-beans

それと、メンション一覧(通知ページの"あなた宛て")では表示が除外されているっぽい

https://github.com/misskey-dev/misskey/blob/efb04293bb01fba6d7d31278d6a8546eae2d9503/packages/backend/src/server/api/endpoints/notes/mentions.ts#L78

後からスレッドミュートを行っても一般の通知欄では既にある通知は消えないが、メンション一覧では後からでも消えるという挙動の差はそのままで良いのか不明

Sayamame-beans avatar Aug 10 '24 11:08 Sayamame-beans

upvote

RN/リアクション通知だけ消す「スレッドミュート弱」とすべての通知を発生させないとかの「スレッドミュート強」があると嬉しいかも?

tamaina avatar Aug 13 '24 10:08 tamaina

RN/リアクション通知だけ消す「スレッドミュート弱」

なるほど… とすると、引用は弱では阻止せず、強では軒並み(私が挙げたケースでも)弾くという2択ですかね?

Sayamame-beans avatar Aug 13 '24 10:08 Sayamame-beans

RN/リアクション通知だけ消す「スレッドミュート弱」

スレッドミュートとは関係なく「RN/リアクション通知だけ消す」機能をつければいいのでは

(今のスレッドミュートの効能を勘違いしてた(嫌な話題を見ないようにするものだったわね

tamaina avatar Aug 13 '24 10:08 tamaina

ふむ…?

Sayamame-beans avatar Aug 13 '24 10:08 Sayamame-beans

今のスレッドミュートの効能

自分の投稿の通知がうるさいから設定するとかではなくて、第三者どうしが話してる不快な会話を消すためのものだったような気がする

tamaina avatar Aug 13 '24 10:08 tamaina

This is intended because thread mute is a feature that mutes conversations. If you want to mute things like voting in polls, I think it needs to be implemented as a separate feature.

この方針は今も変わらないでしょうか…? 投稿/会話をミュートしたら、関連する引用やリアクションの通知も来ない方が自然だと思っていました ~~(未確認: Twitterはそうなっていた?)~~ (Twitterはそうなっている)

これメンションするの忘れてたみたいです… @syuilo どうでしょうか。"スレッドをミュート"とは別の機能として分離した方が良い感じでしょうか?

Sayamame-beans avatar Aug 13 '24 12:08 Sayamame-beans

Twitterでは

  • 他の関係のないツイートにおいて、当人への返信の中でミュート対象のツイートを引用すると、そのツイートは通知されない
  • ミュート対象のツイートへのリプライにおいて、他の関係ない当人のツイートを引用すると、その引用は通知されない

この2つのケースでは、「関係ない投稿に関する通知でもあるので見えて欲しい」という考え方と、「そのようにすれば迂回出来てしまうからやはり通知されるべきではない」という2つの考え方が発生します。

どちらか片方に寄せるのが難しければ、アカウント単位の設定で挙動を切り替えられるようにするとかになりますが…そちらの方が良いでしょうか? (それはそれで設定項目の文言が難しいですが)

追記: 設定で挙動を切り替えられるようにする予定

#14995 (メンションミュートPR)では、箇条書きのうち前者に似たようなパターンにおいて通知が来るようにしたので、こちらも前者は通知される実装1択で良い気がしてきました (この仕様を逆手に取って迂回して通知を発生させてくる場合は、そのユーザーをそもそもミュートすべきor自身の通知の受け取り範囲を設定変更すべきな気もするので) そして後者は通知しない方が自然そう

(将来的には、恐らくリプライ系のミュートとリアクション系のミュートを分離する方が理想的なのだろうとは思いますが…)

Sayamame-beans avatar Jan 12 '25 13:01 Sayamame-beans

操作ミスです…

Sayamame-beans avatar Jan 15 '25 11:01 Sayamame-beans