Skip to content

原文(日本語に翻訳)

--resume 時のクラッシュを修正しました:永続化されたEdit/Writeツールの結果に file_path が欠落していた場合にクラッシュが発生していた問題を修正しました。

原文(英語)

Fixed a crash on --resume when a persisted Edit/Write tool result was missing its file_path

概要

セッションのデータに、EditツールやWriteツールの実行結果として保存された記録に file_path フィールドが欠落している場合、--resume でセッションを再開しようとするとクラッシュが発生していました。このアップデートにより、file_path が欠落していても安全に処理され、クラッシュしないように修正されました。

基本的な使い方

bash
# 以前: Edit/Writeツールの結果データが不完全なセッションを再開するとクラッシュ
# 修正後: 不完全なデータがあっても安全に再開できる

claude --resume SESSION_ID
# 不完全なツール結果データをグレースフルに処理

実践例

ファイル編集セッションの安全な再開

bash
# ファイル編集を含むセッションを開始
claude "src/app.ts のエラーハンドリングを改善して"

# セッションIDを保存
# (実際のIDは異なります)
SESSION_ID="session_2026_04_10_abc123"

# 後日、セッションを再開
# 修正前: file_path が欠落したEditツール結果があるとクラッシュ
# 修正後: 安全に再開される
claude --resume $SESSION_ID

大規模なファイル操作セッションの管理

bash
#!/bin/bash
# 多数のファイルを編集するセッションの安全な管理

# セッション開始前にファイルのスナップショットを取る
git stash  # または git commit

# 大規模なリファクタリングセッション開始
claude "プロジェクト全体のTypeScriptの型エラーを修正して"

# セッション中断後の再開
claude --resume
# 修正により、部分的に保存されたツール結果でもクラッシュしない

セッションデータの健全性確認

bash
# セッションファイルの確認(デバッグ用)
ls ~/.claude/sessions/

# セッションデータの構造確認
cat ~/.claude/sessions/SESSION_ID.json | python3 -m json.tool | grep "file_path"

# file_path が欠落しているエントリの確認
cat ~/.claude/sessions/SESSION_ID.json | python3 -c "
import json, sys
data = json.load(sys.stdin)
for msg in data.get('messages', []):
    for tool_result in msg.get('tool_results', []):
        if 'file_path' not in tool_result and tool_result.get('type') in ['edit', 'write']:
            print('file_path missing in:', tool_result)
"

不完全なデータからのリカバリー

bash
# セッションを再開できない場合の対処法

# オプション1: 特定セッションの再開を試みる
claude --resume SESSION_ID

# オプション2: 最後のセッションを継続
claude --continue

# オプション3: 新しいセッションを開始
claude

# 修正後はオプション1で大半のケースが解決される

注意点

  • このバグはEdit/Writeツールの結果データに file_path フィールドが欠落している場合に限り発生していました
  • データ欠落は通常、セッションが突然終了した場合やシステムエラーの後に発生することがあります
  • 修正後は、欠落したフィールドを持つツール結果は安全にスキップまたはデフォルト値で処理されます
  • セッションデータは ~/.claude/sessions/ ディレクトリに保存されています
  • 重要なセッションの前後には git commit でコードの状態を保存することを推奨します

関連情報