Skip to content

原文(日本語に翻訳)

--resume チェーンリカバリーの問題を修正しました:サブエージェントのメッセージがメインチェーンの書き込みギャップ付近に着地した場合に、無関係なサブエージェント会話に橋渡しされていた問題を修正しました。

原文(英語)

Fixed --resume chain recovery bridging into an unrelated subagent conversation when a subagent message landed near a main-chain write gap

概要

--resume でセッションを再開する際のチェーンリカバリーアルゴリズムに問題がありました。サブエージェントのメッセージがメインの会話チェーンの書き込みギャップ付近に存在する場合、リカバリーが誤って無関係なサブエージェントの会話に接続してしまうケースがありました。このアップデートにより、チェーンリカバリーが正しくメインの会話チェーンを追うようになりました。

基本的な使い方

bash
# サブエージェントを使用したセッションを再開
claude --resume SESSION_ID

# 修正前: 無関係なサブエージェント会話に接続される可能性があった
# 修正後: 正しいメインの会話チェーンに接続される

実践例

サブエージェントを使った複雑なタスクの管理

bash
# サブエージェントを使うタスク(例:並行処理)
claude "以下のタスクを並行して実行してください:
1. フロントエンドのテストを実行
2. バックエンドのテストを実行
3. 統合テストを実行"

# セッションIDを記録
SESSION_ID=$(claude session --current-id)
echo "Session: $SESSION_ID"

# 後で正しいメインの会話に再接続
claude --resume $SESSION_ID

エージェントオーケストレーションでの安全なresumeパターン

bash
#!/bin/bash
# 複数のサブエージェントを使用するワークフロー

# メインエージェントのセッションを開始し、IDを保存
MAIN_SESSION=$(claude --print "セッションIDを教えて" | grep "session:" | awk '{print $2}')

# 複数のサブタスクを実行(内部でサブエージェントが生成される)
claude "大規模なコードリファクタリングを実施してください:
- モジュールA: 型安全性の改善
- モジュールB: パフォーマンス最適化
- モジュールC: テストカバレッジの向上"

# 後で再開(修正により正しいメインチェーンに接続される)
claude --resume

中断されたエージェントワークフローの復旧

bash
# 長時間のエージェントタスクが中断された場合の再開
# 修正前: サブエージェントの会話に誤接続する可能性あり
# 修正後: メインの作業コンテキストが正しく復元される

claude --continue

# 再開後の確認
# "現在の作業状況を教えてください"
# → メインの会話コンテキストが正しく保持されている

デバッグとトラブルシューティング

bash
# セッションの構造を確認
claude --resume --debug

# ログでチェーンリカバリーの状況を確認
grep "chain-recovery\|subagent" ~/.claude/logs/session.log

# 問題が発生した場合、インタラクティブなresumepickerを使用
claude --resume  # セッション一覧から手動選択

注意点

  • このバグはサブエージェントを使用するタスク(マルチエージェントワークフロー)で特に発生していました
  • メインチェーンとサブエージェントチェーンの書き込みタイミングが特定の条件を満たす場合に発生する稀なバグでした
  • 修正後は、チェーンリカバリーアルゴリズムがサブエージェントの会話を正しく識別して除外します
  • --resume を使う前にセッションIDをメモしておくことで、万が一の際に特定のセッションを明示的に指定できます
  • 複雑なマルチエージェントワークフローでは、重要な中間結果を手動でファイルに保存することを推奨します

関連情報