Parley: IRC対応の分散型連合チャット
मूल शीर्षक: Parley: Federated, decentralised chat that speaks plain IRC
यह क्यों महत्वपूर्ण है
IRC 互換の連合型チャットは、中央集権型 SaaS に依存しないコミュニケーション基盤として注目されており、メンション誤配信の修正はマルチインスタンス連合の信頼性向上に直結する。
Parleyは、IRC プロトコルに対応したオープンソースの連合型分散チャットシステムです。ユーザーは自分のドメインでインスタンスを運用し、irssi などの IRC クライアントから user@domain 形式で他インスタンスのユーザーと通信できます。最新の更新(PR #39)では、複数インスタンスに同名ユーザーが存在する場合の通知誤配信バグが修正されました。
Parley は Go 言語で開発された連合型チャットシステムで、標準 IRC プロトコルを話しながらドメイン間でメッセージを連合させる仕組みを持ちます。irssi をはじめ既存の IRC クライアントをそのまま使えることが特徴で、独自インスタンスを立てれば user@domain 形式で他インスタンスのユーザーと通話できます。
最新コミット(2026年9月27日)では、メンション通知の誤配信問題を修正した PR #39 がマージされました。問題の核心は、foo.com と bar.com に同じニック名 "bob" が存在する場合、`bob:bar.com: lunch?` と入力しても両方の bob に通知が届いてしまうというものでした。原因は `namesAccount` 関数がニック名の単独出現をメンションとして数えていたことにあります。
修正では、送信者が見た形式でニックを解釈するルールを導入しました。`bob:bar.com` は bar.com の bob、裸の `bob` は送信者が所属するインスタンスの bob を指すと定義されます。`pushConsidered` 関数が `s.peers` を参照してこの判定を行います。新テスト `TestOnlyTheBobThatWasMeantIsPushed` は、二つのインスタンスに一人ずつ bob を配置し、5行のメッセージがそれぞれ意図した bob だけに通知されることを確認します。`make test` は `-race` フラグ付きで通過、統合テストも10回連続成功を確認済みです。なお、このコミットは Claude Code で生成され、David Collantes 氏が共同作成者として記録されています。