原文(日本語に翻訳)
- 複雑なBashコマンドに対する権限プロンプトによって引き起こされるフリーズおよびCPU100%ループを修正しました
原文(英語)
- Fixed freezes and 100% CPU loops triggered by permission prompts for complex bash commands
概要
Claude Codeが複雑なBashコマンド(パイプライン、サブシェル、複数コマンドの連結など)を実行しようとした際に、権限プロンプトの表示処理でフリーズしたりCPUが100%に張り付くループが発生する問題がありました。バージョン2.1.73でこの問題が修正され、複雑なコマンドの権限確認がスムーズに行われるようになりました。
基本的な使い方
修正後は、複雑なBashコマンドに対しても権限プロンプトが正常に表示されます。
bash
# 複雑なパイプラインコマンドの例
claude "このディレクトリ内のJSファイルを検索して行数を数えてください"
# → find . -name "*.js" | xargs wc -l のようなコマンドが権限プロンプトなしにフリーズすることがなくなった実践例
パイプラインを含む複雑なコマンド
bash
# 以前はこのようなコマンドで権限プロンプトがフリーズすることがあった
find . -name "*.ts" -not -path "./node_modules/*" | xargs grep "TODO" | sort | uniq -c | sort -rn
# v2.1.73以降は正常に権限確認が表示されるサブシェルやコマンド置換を含むコマンド
bash
# ネストされたコマンド置換
echo "Current branch: $(git branch --show-current), Last commit: $(git log -1 --format='%s')"
# 複数のコマンドをセミコロンで連結
cd /tmp && mkdir -p test-dir; cd test-dir && touch file.txtヒアドキュメントを含むコマンド
bash
# ヒアドキュメントを使ったファイル生成
cat <<'EOF' > config.yaml
server:
port: 8080
host: localhost
EOF注意点
- この修正はv2.1.73で適用されます。それ以前のバージョンでは、複雑なBashコマンドの権限プロンプトでフリーズが発生する可能性があります
- フリーズが発生した場合は、Claude Codeプロセスを強制終了(
Ctrl+Cを複数回押す、または別ターミナルからkill)する必要がありました - 権限プロンプトの動作は
permissions.allowやpermissions.denyの設定、およびフックで制御できます - Bashコマンドの自動承認リスト(allowlist)を活用すると、頻繁に使用する安全なコマンドの権限プロンプトを省略できます