Skip to content

原文(日本語に翻訳)

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以前に失われた履歴エントリは復元できませんが、以降は正しく保存されます

関連情報