原文(日本語に翻訳)
CJKや絵文字を含むプロンプト履歴エントリが~/.claude/history.jsonlの4KB境界に掛かると、サイレントに削除されてしまう問題を修正しました。
原文(英語)
Fixed prompt history entries containing CJK or emoji being silently dropped when they fall on a 4KB boundary in ~/.claude/history.jsonl
概要
日本語・中国語・韓国語(CJK)の文字や絵文字はUnicodeのマルチバイト文字であり、~/.claude/history.jsonl ファイルへの書き込み時に4KBのバッファ境界をまたぐと、履歴エントリ全体がサイレントに(エラーなく)削除されていました。日本語などで長いプロンプトを入力する際に、過去の入力履歴が消えてしまうという問題でした。v2.1.89でマルチバイト文字の境界処理が修正されました。
基本的な使い方
プロンプト履歴は自動的に ~/.claude/history.jsonl に保存されます:
bash
# プロンプト履歴ファイルの確認
cat ~/.claude/history.jsonl | head -5
# 履歴のバックアップ(念のため)
cp ~/.claude/history.jsonl ~/.claude/history.jsonl.backup
# 修正後は日本語・絵文字を含む長いプロンプトも正しく保存される実践例
CJK文字を含む長いプロンプトの例
bash
# このような長い日本語のプロンプトが4KB境界にかかっていた場合
# 修正前: サイレントに削除されていた
# 修正後: 正しく保存される
# Ctrl+R で過去の履歴を検索する際も正しく表示される履歴ファイルの確認と管理
bash
# 履歴ファイルのサイズと内容を確認
wc -l ~/.claude/history.jsonl
ls -lh ~/.claude/history.jsonl
# 最近の履歴エントリを確認(日本語が正しく保存されているか)
tail -5 ~/.claude/history.jsonl | python3 -m json.tool
# 絵文字を含むエントリの確認
grep -P "[\x{1F000}-\x{1FFFF}]" ~/.claude/history.jsonl履歴の活用
bash
# 過去のプロンプトを再利用する(上矢印キーまたはCtrl+R)
# 修正後: CJK・絵文字を含む長いプロンプトも正しく検索・再利用できる
# 例: 「このコードを日本語でコメントしてください」のような
# 日本語プロンプトが履歴に正しく保存される注意点
- この問題は特に日本語・中国語・韓国語のプロンプトで発生しやすかった(マルチバイト文字のため)
- 絵文字(4バイト文字)も同様の問題の影響を受けていました
- 削除は「サイレント」であったため、エラーメッセージなしで履歴が消えていました
- v2.1.89以前に失われた履歴エントリは復元できませんが、以降は正しく保存されます