Skip to content

原文(日本語に翻訳)

--resume/--continue が大規模セッションで会話コンテキストを失う問題を修正しました。ローダーが生きている会話ではなく行き詰まりのブランチにアンカーしていたことが原因でした。

原文(英語)

Fixed --resume/--continue losing conversation context on large sessions when the loader anchored on a dead-end branch instead of the live conversation

概要

大規模なセッションで --resume--continue オプションを使用した場合、ローダーが実際の会話の継続点ではなく、会話ツリーの行き詰まりブランチ(dead-end branch)にアンカーしてしまうというバグがありました。これにより、会話コンテキストが失われ、以前の作業内容が引き継がれない問題が発生していました。このアップデートにより、正しいブランチが選択されるようになりました。

基本的な使い方

bash
# 以前は大規模セッションでコンテキストが失われることがあった
# 修正後は正しく会話コンテキストが引き継がれる

# 前のセッションを継続
claude --continue

# 特定のセッションを再開
claude --resume SESSION_ID

# セッション一覧を表示
claude --resume  # インタラクティブに選択

実践例

長期プロジェクトでの作業継続

bash
# 昨日の作業セッションを再開
# 修正前: 大規模セッションではコンテキストが失われる場合があった
# 修正後: 正しいブランチが選択され、コンテキストが保持される

claude --continue

# Claude は以前の会話内容を正確に把握している:
# "昨日、ユーザー認証モジュールの実装を開始しました。
#  JWT トークンの生成部分まで完了しています。
#  続きとして、トークン検証のロジックを実装します。"

セッションIDによる明示的な再開

bash
# セッションの一覧を確認
claude --resume

# 特定のセッションを指定して再開
claude --resume abc123def456

# 大規模セッション(数百のメッセージを含む)でも
# 正しい会話ポイントから再開される

マルチセッションプロジェクト管理

bash
#!/bin/bash
# 複数のプロジェクトセッションを管理するスクリプト

# セッション情報をファイルに保存
save_session_info() {
  local project="$1"
  local session_id="$2"
  echo "$project=$session_id" >> ~/.claude/project-sessions.txt
}

# プロジェクトのセッションを再開
resume_project() {
  local project="$1"
  local session_id=$(grep "^$project=" ~/.claude/project-sessions.txt | cut -d= -f2)
  
  if [ -n "$session_id" ]; then
    echo "$project のセッションを再開します: $session_id"
    claude --resume "$session_id"
  else
    echo "新しいセッションを開始します"
    claude
  fi
}

# 使用例
resume_project "ecommerce-api"

コンテキスト確認のベストプラクティス

bash
# セッション再開後にコンテキストが正しく引き継がれているか確認

claude --continue

# 再開後に確認:
# /context  # コンテキストの使用状況を確認
# "現在の状況を要約してください" と聞いてコンテキストを確認

注意点

  • このバグは特に大規模セッション(多数のツール呼び出しや長い会話を含む)で発生していました
  • 小規模なセッションではほとんど影響がなかった可能性があります
  • 修正後も、非常に古いセッション(コンテキストウィンドウを超えるもの)は完全には復元されません
  • セッション管理の問題が続く場合は、/resume コマンドを使ったインタラクティブな選択を試してください
  • 重要なセッションIDは手動で記録しておくことを推奨します

関連情報