Skip to content

原文(日本語訳)

ripgrep 検索のタイムアウトがエラーを報告せず、静かに空の結果を返していた問題を修正しました

原文(英語)

Fixed ripgrep search timeouts silently returning empty results instead of reporting errors

概要

Claude Code の検索機能(ripgrep)がタイムアウトした際に、エラーを表示せずに空の結果を返していた問題が修正されました。これにより、検索が実際に何も見つからなかったのか、タイムアウトしたのかを明確に判断できるようになります。

修正された問題

以前は、ripgrep 検索がタイムアウトした場合:

  • エラーメッセージが表示されない
  • 空の結果が返される
  • 検索失敗なのか、本当に結果がないのか判断できない
  • Claude が誤った判断をする可能性がある

修正後は、タイムアウトが発生すると明確なエラーメッセージが表示されます:

Search timed out after 30 seconds
Consider narrowing your search pattern or increasing the timeout

検索タイムアウトのカスタマイズ

必要に応じて、タイムアウト時間を延長できます。

bash
# 環境変数でタイムアウトを設定(ミリ秒)
export RIPGREP_TIMEOUT_MS=60000  # 60秒
claude

または、設定ファイルに記述:

json
{
  "env": {
    "RIPGREP_TIMEOUT_MS": "60000"
  }
}

注意点

  • 明確なエラー: タイムアウト時には明確なエラーメッセージが表示されます
  • デフォルト値: デフォルトのタイムアウトは30秒です
  • 検索範囲: 大規模なリポジトリでは、検索パターンを絞り込むことを推奨します
  • パフォーマンス: タイムアウトを長く設定しすぎると、応答時間が遅くなります
  • パターン最適化: 正規表現パターンを最適化することで、タイムアウトを回避できます
  • エラーハンドリング: Claude はタイムアウトエラーを認識し、検索を調整します

トラブルシューティング

検索がタイムアウトする場合の対処法:

検索範囲を絞る

bash
# 特定のディレクトリに限定
claude
> src ディレクトリ内で "MyComponent" を検索してください

より具体的なパターンを使用

bash
# 正規表現を最適化
claude
> "^import.*Button" を検索(行頭から始まる import のみ)

除外パターンを活用

bash
# node_modules などを除外
claude
> node_modules を除外して検索してください

関連情報