メンションのある通知とそうでない通知を分割して投稿するとか?
決めたこと
同一チャンネルのまま、メンション対象かどうかが切り替わる位置で投稿を区切る(コメントの案C)。
並べ替えはしないので、通知は更新時刻の昇順のまま届き、投稿の境界だけが増える。
古い順に「通常・メンション・メンション・通常」と届いた実行なら、投稿は「通常 1 件」「メンション 2 件」「通常 1 件」の 3 つになる。
これで @channel の付く投稿には自分宛ての通知だけが入る。
検討した他の案は以下。
- 案A(別チャンネルへ分離): 環境変数
MENTION_WEBHOOK_URL を足してメンション対象だけ別チャンネルへ送る。骨格は案Cと同じで、後から拡張できる
- 案B(同一チャンネル内の強調):
🔴 マークと赤色を付ける。流量は変わらないため単独では埋もれる。案Cと併用はできる
区切りの判定には reason だけを使い、CI によるメンション抑止(#105)は反映しない。
抑止は「レビューできない PR でチャンネル全体を叩かない」ためのもので、通知の重要度を下げるものではないため。
CI が赤い PR では @channel だけが抑止され、投稿はメンション対象側に入る。
状況
#122 で実装済み(CI green、レビュー指摘は対応済み)。
派生した対応。
案B(🔴 マーク・赤色)は入れていない。
投稿の区切りだけで見分けが足りるか使ってみてから判断する。
メンションのある通知とそうでない通知を分割して投稿するとか?
決めたこと
同一チャンネルのまま、メンション対象かどうかが切り替わる位置で投稿を区切る(コメントの案C)。
並べ替えはしないので、通知は更新時刻の昇順のまま届き、投稿の境界だけが増える。
古い順に「通常・メンション・メンション・通常」と届いた実行なら、投稿は「通常 1 件」「メンション 2 件」「通常 1 件」の 3 つになる。
これで
@channelの付く投稿には自分宛ての通知だけが入る。検討した他の案は以下。
MENTION_WEBHOOK_URLを足してメンション対象だけ別チャンネルへ送る。骨格は案Cと同じで、後から拡張できる🔴マークと赤色を付ける。流量は変わらないため単独では埋もれる。案Cと併用はできる区切りの判定には reason だけを使い、CI によるメンション抑止(#105)は反映しない。
抑止は「レビューできない PR でチャンネル全体を叩かない」ためのもので、通知の重要度を下げるものではないため。
CI が赤い PR では
@channelだけが抑止され、投稿はメンション対象側に入る。状況
#122 で実装済み(CI green、レビュー指摘は対応済み)。
Notify::Message#important?を追加し、Github::Usecaseで reason から設定するNotify::Usecase#send_splitがimportant?の連続区間ごとに投稿する。既読化に渡る累計は分割前と一致させている(Discord 分割送信の途中失敗時に通知が重複投稿されうる(既読化の atomicity) #94 / last_read_at 既読化の境界が排他的で、最新の通知が既読にならず毎分再送される #100 の前提を保つ)@everyoneがメンション対象の区間のチャンクにだけ付くようになった派生した対応。
案B(
🔴マーク・赤色)は入れていない。投稿の区切りだけで見分けが足りるか使ってみてから判断する。