原文(日本語訳)
インライン検索(Ctrl+R)で履歴ファイルのスキャンがまだ完了していない状態で、検索結果を確定(accept)またはキャンセルした際にクラッシュが発生する不具合を修正しました。
原文(英語)
Fixed a crash in the inline Ctrl+R history search when accepting or cancelling while the search was still scanning the history file
概要
これはバグ修正のchangelogエントリです。Claude Codeの対話モードではCtrl+Rを押すことで過去のプロンプト履歴を逆順検索(reverse search)できますが、履歴ファイル(~/.claude/history.jsonl)が大きい場合、検索対象のスキャンが非同期でバックグラウンド処理されることがあります。このスキャンがまだ完了していないタイミングでTab/Escによる確定や、Ctrl+C/Backspaceによるキャンセルを行うと、内部状態の不整合によりClaude Codeプロセスがクラッシュする問題がありました。本修正により、スキャン中であっても安全に確定・キャンセル操作ができるようになりました。
基本的な使い方
Ctrl+Rによる履歴検索は次の手順で利用します。
- Claude Codeの対話モードでプロンプト入力欄にフォーカスがある状態で
Ctrl+Rを押す - 検索したいキーワードを入力すると、一致する過去のプロンプトがハイライト表示される
Ctrl+Rをもう一度押すと、より古い一致候補へ移動できるCtrl+Sで検索範囲(このセッション/このプロジェクト/すべてのプロジェクト)を切り替えられるTabまたはEscで候補を確定して編集を続ける、あるいはEnterでそのまま実行するCtrl+Cまたは、検索文字列が空の状態でBackspaceを押すと検索をキャンセルし、元の入力内容に戻る
今回の修正は、上記の「確定」または「キャンセル」操作を、履歴ファイルのスキャンがまだ終わっていないタイミングで行った場合に発生していたクラッシュを解消するものです。通常の使い方をしている限り、ユーザーが意識すべき操作の変更はありません。
実践例
大きな履歴ファイルを持つ環境での検索
長期間Claude Codeを使い続けているユーザーは、~/.claude/history.jsonlに大量のプロンプト履歴が蓄積されます。履歴が多いほどスキャンに時間がかかるため、Ctrl+Rを押した直後、検索候補が表示され切る前に素早くEnterやEscを押してしまうケースが起こりやすくなります。修正前はこのタイミングでクラッシュしてセッションが中断してしまう可能性がありましたが、修正後は安全に処理が完了し、セッションを継続できます。
# 大量の履歴を持つプロジェクトで素早く検索・確定する例
# 1. Ctrl+R を押す
# 2. 検索語を入力した直後に Enter を押す(スキャンが完了していなくても安全)検索範囲を切り替えながら素早くキャンセルする
Ctrl+Sで検索範囲(セッション/プロジェクト/全プロジェクト)を切り替えると、その都度対象となる履歴の再スキャンが走ります。範囲を切り替えた直後、目的の候補が見つからずCtrl+Cで即座にキャンセルするような操作は、スキャンが進行中の状態でのキャンセルに該当します。修正前はこの操作がクラッシュの引き金になり得ましたが、修正後は安定してキャンセルでき、元のプロンプト入力に戻ります。
# 検索範囲を切り替えて即キャンセルする例
# 1. Ctrl+R を押す
# 2. Ctrl+S で検索範囲を「すべてのプロジェクト」に切り替え
# 3. 目的の候補がなければ Ctrl+C で即座にキャンセル(スキャン中でも安全に中断)注意点
- この修正はバグ修正のため、Ctrl+R履歴検索そのものの操作方法や仕様に変更はありません。
- 本changelogエントリはv2.1.202として記載されているものであり、この修正はv2.1.202以降のバージョンに含まれています。安定した動作を得るには、v2.1.202以降へのアップデートを推奨します。
- 履歴ファイル(
~/.claude/history.jsonl)が非常に大きい環境や、低速なストレージ上で作業している場合にスキャン時間が長くなりやすく、今回のような競合状態(race condition)が発生しやすい傾向があります。 - 症状が改善しない場合は、
claude --versionで現在のバージョンを確認し、最新版へのアップデートを検討してください。
関連情報
- Interactive mode - Claude Code Docs(Ctrl+Rによる履歴逆順検索の公式リファレンス)
- Claude Code changelog - Claude Code Docs