Skip to content

原文(日本語に翻訳)

リモートコントロールのいくつかの問題を修正しました:セッションクラッシュ時に削除されるworktree、トランスクリプトに記録されない接続失敗、ローカルセッションのブリーフモードでの誤った「切断」表示、CLAUDE_CODE_ORGANIZATION_UUID のみが設定されている場合にSSH経由で失敗する /remote-control

原文(英語)

Fixed several Remote Control issues: worktrees removed on session crash, connection failures not persisting in the transcript, spurious "Disconnected" indicator in brief mode for local sessions, and /remote-control failing over SSH when only CLAUDE_CODE_ORGANIZATION_UUID is set

概要

リモートコントロール機能に関する4つの問題が同時に修正されました。セッションクラッシュ時のworktreeの誤削除、接続失敗のトランスクリプト記録の欠如、ローカルセッションでの誤った「切断」表示、SSH経由でのリモートコントロール接続問題が解決されました。

基本的な使い方

bash
# リモートコントロールセッションを開始
/remote-control

# SSHでリモートサーバーに接続
ssh user@remote-server

# CLAUDE_CODE_ORGANIZATION_UUID のみ設定した環境(修正後)
export CLAUDE_CODE_ORGANIZATION_UUID=org-xxxxx
claude
/remote-control  # 修正後: SSH経由でも正常に動作

実践例

リモートサーバーでのClaude Code使用

bash
# リモートサーバーへの接続
ssh user@dev-server.company.com

# 組織UUIDのみ設定した環境(CI/CDサーバーなど)
export CLAUDE_CODE_ORGANIZATION_UUID=org-12345-abcdef

# 修正前: /remote-control がSSH経由で失敗
# 修正後: 正常に動作する
claude /remote-control

# リモートセッションの接続状況確認
claude /remote-control status

セッションクラッシュ時のworktree保護

bash
# worktreeを作成してリモートコントロールセッションを開始
claude -w feature-branch

# リモートコントロール経由で操作中にクラッシュが発生した場合
# 修正前: worktreeが削除されてしまう(作業内容が失われる)
# 修正後: worktreeが保護される

# クラッシュ後にworktreeを確認
git worktree list
# feature-branch が存在することを確認

# セッションを再開
claude --resume

接続失敗のトランスクリプト記録

bash
# リモートコントロール接続が失敗した場合
# 修正前: 失敗がトランスクリプトに記録されない
# 修正後: 失敗の詳細がトランスクリプトに記録される

# トランスクリプトの確認
cat ~/.claude/transcripts/latest.txt | grep "connection\|disconnect\|error"

# 接続履歴の分析
grep "Remote Control" ~/.claude/transcripts/latest.txt

ローカルセッションでの誤った切断表示の修正

bash
# ブリーフモードでローカルセッションを実行
claude --brief

# 修正前: ローカルセッションでも "Disconnected" が表示される
# → ユーザーが接続問題と誤解する

# 修正後: ローカルセッションでは接続状態インジケーターは表示されない
# リモートセッションのみで表示される

# ブリーフモードでのセッション状態確認
claude --brief --status

SSH経由のリモートコントロール設定

bash
# SSH設定(~/.ssh/config)
cat << 'EOF' >> ~/.ssh/config
Host dev-server
  HostName dev.company.com
  User deploy
  IdentityFile ~/.ssh/deploy_key
  ForwardAgent yes
EOF

# リモートサーバーの環境変数設定
ssh dev-server "export CLAUDE_CODE_ORGANIZATION_UUID=org-xxxxx && claude /remote-control"

# または.bashrcに設定
ssh dev-server "echo 'export CLAUDE_CODE_ORGANIZATION_UUID=org-xxxxx' >> ~/.bashrc"
ssh dev-server
claude /remote-control  # 修正後: 正常に動作

リモートコントロールのモニタリング

bash
#!/bin/bash
# リモートコントロール接続を監視するスクリプト

monitor_remote_control() {
  echo "リモートコントロール接続を監視中..."
  
  while true; do
    # 接続状態を確認
    status=$(claude /remote-control status 2>&1)
    
    if echo "$status" | grep -q "Connected"; then
      echo "$(date): 接続中"
    elif echo "$status" | grep -q "Disconnected"; then
      echo "$(date): 切断検出 - 修正後: ローカルセッションでは表示されないはず"
    fi
    
    sleep 30
  done
}

monitor_remote_control &

注意点

  • worktreeの保護は、リモートコントロール経由のセッションクラッシュに限定した修正です
  • 接続失敗のトランスクリプト記録により、後からデバッグが容易になります
  • CLAUDE_CODE_ORGANIZATION_UUID のみ設定した環境(APIキーなし)でのSSH接続が可能になりました
  • ブリーフモードの「切断」表示修正により、不必要な混乱を防ぐことができます
  • リモートコントロール機能は組織プランでのみ利用可能な場合があります

関連情報