原文(日本語に翻訳)
ツールフックの実行タイムアウトを60秒から10分に変更しました
原文(英語)
Changed tool hook execution timeout from 60 seconds to 10 minutes
概要
Claude Code v2.1.3では、ツールフック(tool hooks)の実行タイムアウトが60秒から10分(600秒)に延長されました。これにより、テストスイートの実行やビルドプロセスなど、時間のかかる処理をフックで実行できるようになり、より柔軟なワークフローの構築が可能になります。
基本的な使い方
ツールフックは、特定のツール呼び出しの前後に自動実行されるスクリプトです。
bash
# フックの設定例(.claude/hooks/ディレクトリ)
# pre-bash.sh, post-bash.sh など
# v2.1.3では、10分以内に完了する処理を実行できる実践例
修正前の制限
以前は60秒でタイムアウトしてしまい、長時間処理を実行できませんでした。
bash
# 修正前の動作例
# pre-bash.sh フックでテストを実行
#!/bin/bash
npm test # テストスイートの実行に2分かかる
# 問題:
# ⏱️ タイムアウト!(60秒で強制終了)
# テストが完了せずにフックが失敗
# 本来のBashコマンドが実行されない修正後の動作
v2.1.3では、最大10分の処理が可能になりました。
bash
# 修正後の動作例
# pre-bash.sh フックでテストを実行
#!/bin/bash
npm test # テストスイートの実行に2分かかる
# 改善:
# ✅ タイムアウトせずに完了(10分以内)
# テストが正常に完了
# 本来のBashコマンドも実行されるビルドプロセスの統合
ビルドやコンパイルをフックで実行できるようになりました。
bash
# pre-commit フックの例
#!/bin/bash
# TypeScriptのコンパイル(1分)
npm run build
# Lintの実行(30秒)
npm run lint
# テストの実行(2分)
npm run test
# 合計約3.5分 → v2.1.3では問題なく実行可能複雑なCI/CDチェックの実行
複数のチェックを組み合わせた検証も可能です。
bash
# pre-bash.sh フックの例
#!/bin/bash
echo "Running pre-checks..."
# 型チェック
npm run type-check
# セキュリティ監査
npm audit
# E2Eテストの実行(時間がかかる)
npm run test:e2e
# パフォーマンステスト
npm run test:performance
# 合計5-8分程度 → v2.1.3では実行可能データベースマイグレーション
開発環境のセットアップやマイグレーションもフックで自動化できます。
bash
# post-tool フックの例
#!/bin/bash
# データベースマイグレーション(数分かかる場合がある)
npm run db:migrate
# シードデータの投入
npm run db:seed
# キャッシュの生成
npm run cache:warm
# v2.1.3では、これらの処理をまとめて実行可能タイムアウト設定の例外処理
長時間処理でも、適切なフィードバックを提供できます。
bash
# pre-bash.sh フックの例
#!/bin/bash
echo "Starting long-running checks..."
# プログレス表示付きで実行
npm test -- --verbose
# 10分以内に完了すれば成功
# 10分を超える場合は、処理を分割することを検討注意点
- フックの実行時間は最大10分までです。それを超える処理は別の方法で実行してください
- フックが長時間実行されると、ユーザー体験が低下する可能性があります
- 可能な限り、フックの実行時間は短くすることを推奨します(数分以内)
- 非常に時間のかかる処理(ビルド、テストなど)は、バックグラウンドタスクや別のワークフローで実行することを検討してください
- フックがタイムアウトすると、設定によっては元のコマンドがブロックされる場合があります