セッションブリッジ確立の為には「用語」「セッション確立手順」だけ読めば十分です。
それ以降の章は、セッションブリッジの仕組み自体を変更する際に読んでください。
SendMessageで直接やり取りするための機能の呼称。以下を1本の流れとして、番号順にそのまま実行する。各項目の先頭が担当者
(ユーザー/発呼側/着呼側)。
ユーザー: 両方に/remote-controlを実行して接続できる状態にする
ユーザー: 発呼側にしたいセッションに対して、直接「セッション
ブリッジ」等と発話してトリガーする。
あなたへの指示:
あなたの役割は「着呼側」です。
ListAgentsを実行し、自分以外の全候補のうち、Remote Control種別
(別マシン上のセッション)のみに、次の文面をそのまま一斉送信して
ください(同一マシン内のinteractiveピアはブリッジ相手になり得ない
ため対象外):
+++++
「[SESSION-BRIDGE] このメッセージを受信したら、自分が発呼側として生成した
セッション開始ワードを返信してください
+++++
返信の中に、下記のセッション開始ワードと完全一致するものが届いたら、
その送信元 (from属性)を本物と確定し、以後はそこへSendMessageで返信して
会話を継続してください。一致しない返信は無視してください。
完全一致が1件も得られない場合は、ユーザーに「発呼側セッションの
画面・ログをこちらに貼り付けてもらえますか」と依頼し、双方のログ
をユーザーに手動で橋渡ししてもらうことで本人確認に切り替えて
ください。
3. ユーザー: 表示されたブロックをそのままコピーし、着呼側にしたい
セッションに貼り付ける。
4. 着呼側: 受け取った文面の通り、自分が「着呼側」であると認識する。
5. 着呼側: ListAgentsで見える自分以外の候補のうち、Remote Control
種別のみに(同一マシン内のinteractiveピアは対象外)、セッション開始
ワードの値を明かさずに発呼側から指示された文面を送信する
6. 発呼側: 自分が発行したセッション開始ワードを求める[SESSION-BRIDGE]
照会を受け取ったら、そのワードをそのまま返信する。
7. 着呼側: 届いた返信の中から、ブロックに書かれていた値と完全一致
するものを探す。一致しない返信(「知らない」、別件の値など)は無視
する。
8. 判定(着呼側・発呼側・ユーザー):
- 完全一致が見つかった場合: 着呼側はその送信元を本物(発呼側)と
確定し、以後そのアドレスへSendMessageで会話を継続する。発呼側も、
返信した相手からの以後のメッセージを本物の着呼側として扱う。
- 完全一致が1件も見つからない場合(フォールバック): 着呼側は
ユーザーに発呼側のログを見せてもらえるよう依頼する。ユーザーは
双方のセッションのログを手動で相手側に橋渡しする。着呼側・発呼側は、
ユーザーが仲介して確認した内容をもって相手を本物と確定し、以後
SendMessageで会話を継続する。
ListAgents・SendMessageはClaude Code標準機能のため、Butlerなしでそのまま
使える。Windows側セッションが追加で実装・設定すべきことはない。上記の
「セッション確立手順」をそのまま行えばよい(WSL側と対称)。
## セッションブリッジ(WSL側とのライブ連携、補助手段)
WSL側(AiChatWls)のセッションが同時にアクティブなら、SendMessageで直接
連携できる。仕様はAiChatWls側の `docs/session-linking-protocol.md` を参照。
このセッションで追加の実装や設定は不要。
- ユーザーから「セッションブリッジ」等で接続を求められたら発呼側、
`[SESSION-BRIDGE]`ブロックが貼り付けられたら着呼側として、AiChatWls側の
`docs/session-linking-protocol.md`の「セッション確立手順」をそのまま
実行する。
- 自分がどちらの役割かを最初に宣言してから進める。
- 片方が非アクティブな場合は従来通りSTARTUP_CONTEXT.mdでの引き継ぎを使う。
以下は手順そのものではなく、なぜ現在の手順になっているかの根拠。手順を
変更・改修する場合にのみ参照すればよい。
SendMessageのtoに指定できるのは、送信する側自身のListAgentsにinteractiveピアの可視性はローカルプール(同一マシン)内に閉じている。ListAgentsにはWSL側のinteractiveセッションしか出ず、Windows側ListAgentsにどんな名前/IDで表示されるかを、自分側ListAgentsには(少なくとも短時間WSL brain separation planという名前のエントリ3件が、ListAgentsに映る自分のto=の値を知りようがないため。interactiveピアにも照会してしまい、初期案(手順A/Bによるコピペブロック生成方式、ただし相手に自分の名前を
伝える版)、その設計が破綻していた実地検証の詳細、合言葉方式への転換、
「ユーザーが合言葉を手入力する手間」をなくすための改良、および
2026-09-15の同時トリガー問題とその対策の根拠は、Gitea Issue #2 および
その配下のtrack #3(Track Ledger)に記録されている。