メッセージから同じスレッドに属するメッセージのリストを得る@Threadと、条件に合うまでメッセージリストを繰り返し処理する@FindEachを追加しました。
例えば、そのメッセージと同じスレッドに属するメッセージをまとめて既読にしたいならば、
@ForEach(@Thread(), @Seen(@True()))
とします。スレッドのルートのメッセージのメッセージIDを取得するには、
@FindEach(@Thread(), @True(), Message-Id)
とすれば良いでしょう。
@FindEach(@Thread(), @Equal(@Address(From), @Address(@I())))
とすれば、あるメッセージが自分が関係するスレッドに属するかどうかを調べることができます。
ただし、今のところMessage-Idのマップを保持していないので、@Thread()はそれほど速くありません。