sharedInbox
#仕様
バルク転送用のinbox
https://www.w3.org/TR/activitypub/#sharedInbox
An optional endpoint used for wide delivery of publicly addressed activities and activities sent to followers.
同じサーバ(インスタンス)の複数Personにそれぞれ転送する代わりにここに1回投げ込むだけでいい(たぶん)
対象がpublicな投稿でないと使えない……?
unarist.icon public宛の場合はさらに転送してもよい、と書いているぐらいなので、別にpublicでない投稿も投げることができるかと(実際、フォロワー限定投稿とか sharedInbox 使えないとしんどそう)
https://gihyo.jp/article/2023/02/misskey-01
同じインスタンスのフォロワーへの配送は、Shared Inboxという仕組みを用いて1回で済ますことができますが
hr.icon
windymelt.icon sharedInboxは何を受け付けたら良いんだろう
windymelt.icon 1つしかActorがないようなBOT用の実装だと適当にフィルタして転送するだけでいいのかな
windymelt.icon 配列とか渡しても動くのだろうか
みたらしだんご.icon Mastodonの場合、「ローカルアカウントの誰かが投稿者をフォローしているか」、「ローカル投稿へのリプライかどうか」等をチェックしているようなので、送信先サーバーの誰からもフォローされていないサーバーへメンションなどを送信する場合は、アカウント個別のInboxへ投げ込んであげる方がよさそうです。(ぶっちゃけ実装が面倒なので、フォローされてなかったらSharedInboxを使わないくらいでもいいかもしれない...)
参考
https://github.com/mastodon/mastodon/blob/main/app/lib/activitypub/activity/create.rb#L48
https://github.com/mastodon/mastodon/blob/main/app/lib/activitypub/activity/create.rb#L387
unarist.icon そのコードはsharedInbox/inbox共通で通るところでは?メンションは addresses_local_accounts?でカバーしてると思います。
みたらしだんご.icon 確かに...って思って見てみると、なんかうちがリグレッションしてて、出力しているオブジェクトのオーディエンス情報(To,Cc,Bcc)にメンション先アカウントが含まれてないのが原因っぽそうなので取り消し線を引いておきます。