Claude Code並列開発を支えるセッション間通信とworktree
POINT
セッション間メッセージングとは何が変わった?
Claude Codeのクロスセッションメッセージングは、あるセッションから別のセッションへテキストを送る仕組みだ。会話履歴やファイルは運ばれない。文脈全体を渡したいなら、セッション再開が必要になるMessage your other Claude Code sessions。
対象セッションの検出にはListAgents、送信にはSendMessageを使う。この2機能がmacOSおよびLinuxで利用可能になったのがv2.1.224だv2.1.224。受信側が処理中なら、ツール呼び出しの合間にメッセージが読み取られる。処理中でなければ新しいターンが立つ。配信・保留・拒否は受信側が制御し、配信されたメッセージは通常のプロンプトと同様に利用量へ計上される。
worktree分離とself-hosted runnerはどう噛み合う?
並列開発でまず問題になるのは、複数セッションが同じファイルを取り合うことだ。v2.1.222ではworktree分離セッションとそのサブエージェントに対し、ファイル編集とBash実行の分離がすべてのセッション種別に適用されるよう修正されたv2.1.222。branchごとに作業ディレクトリが分かれるので、複数のClaude Codeが同時にコードを書いても衝突しにくい。
実行場所の選択肢も広がった。v2.1.224で追加されたself-hosted環境機能は、TeamおよびEnterpriseプランで自社のマシンやコンテナを実行場所にできるv2.1.224。同一マシン上のセッション間通信はセッションごとのソケットを経由し、Anthropicのサーバーは経由しない。ただしコンテナ内のセッションとホスト上のセッションは互いに到達できない。同じコンテナ内のセッション同士なら送信できる。この境界線を把握しておくと、runnerの構成ミスで意図しない指示が飛ぶ事故を避けられる。
権限面も強化された。crossSessionInboundとdialogExpiryの設定が追加され、権限バイパス中のセッションへのメッセージは承認待ちになる仕様に変わったv2.1.224。他セッションからのメッセージはユーザーの同意として扱われず、権限確認の承認やCLAUDE.mdの設定変更には使えない。v2.1.222ではさらに、SendMessageで他エージェントに送るメッセージが送信前に権限分類器で評価されるようになったv2.1.222。