Skip to content

原文(日本語に翻訳)

claude --continue -p-p またはSDKで作成されたセッションを正しく継続しない問題を修正しました。

原文(英語)

Fixed claude --continue -p not correctly continuing sessions created by -p or the SDK

概要

-p(print mode)フラグや Claude Code SDK を使用して作成されたセッションを、--continue -p で継続しようとした場合に、正しくセッションが引き継がれないというバグがありました。このアップデートにより、-p またはSDKで作成されたセッションでも --continue が正しく機能するようになりました。

基本的な使い方

bash
# -p (print mode) でセッションを開始
claude -p "初期設定を実行して"

# 後で同じセッションを継続(修正前は正しく継続されない場合があった)
claude --continue -p "次のステップを実行して"

# 修正後: セッションが正しく引き継がれる

実践例

bash
#!/bin/bash
# print modeを使った連続タスクのスクリプト

# ステップ1: プロジェクトを分析
echo "Step 1: プロジェクト分析"
claude -p "このプロジェクトの構造を分析して、問題点を3つ挙げて"

# ステップ2: 前のセッションの文脈を引き継いで続行
echo "Step 2: 問題の修正"
claude --continue -p "先ほど挙げた問題のうち、最初の問題を修正して"

# ステップ3: さらに続行
echo "Step 3: テストの実行"
claude --continue -p "修正した箇所のユニットテストを作成して"

# 修正後: 各ステップで前のコンテキストが正しく引き継がれる

SDK を使ったセッションの継続

python
# Python SDK でセッションを作成
from anthropic import Anthropic
import subprocess

client = Anthropic()

# SDKでセッションを開始
response = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "プロジェクトの設計を考えて"}
    ]
)

print(response.content[0].text)

# セッションIDを取得(実際の実装による)
session_id = response.session_id  # 実装による

# CLIから同じセッションを継続(修正後)
result = subprocess.run(
    ["claude", "--continue", "-p", "設計に基づいてコードを生成して"],
    capture_output=True, text=True
)
print(result.stdout)

CI/CDパイプラインでの多段階処理

bash
#!/bin/bash
# CI/CDパイプラインでの多段階AI処理

set -e  # エラーで停止

echo "=== コードレビューパイプライン ==="

# 第1段階: コードの分析
echo "1. コードを分析中..."
claude -p "src/ ディレクトリのコードを分析して、改善が必要な箇所を特定して" \
  > /tmp/analysis.txt

echo "分析完了:"
cat /tmp/analysis.txt

# 第2段階: 前のコンテキストを引き継いで改善提案
echo "2. 改善提案を生成中..."
claude --continue -p "特定した問題に対して、具体的な改善コードを生成して" \
  > /tmp/improvements.txt

echo "改善提案完了:"
cat /tmp/improvements.txt

# 第3段階: テスト生成
echo "3. テストを生成中..."
claude --continue -p "改善したコードに対するテストケースを生成して" \
  > /tmp/tests.txt

echo "テスト生成完了:"
cat /tmp/tests.txt

セッション継続の確認

bash
# セッションが正しく継続されているか確認
claude -p "私の名前はAliceです。覚えておいてください。"

# セッションIDを確認(ログなどから)
SESSION_ID=$(ls -t ~/.claude/sessions/ | head -1)

# セッションを継続して確認
claude --continue -p "私の名前を教えてください"
# 修正後: "あなたの名前はAliceですね" と正しく応答される
# 修正前: セッションが引き継がれず、名前を覚えていない

注意点

  • このバグは -p(print mode)またはSDKで作成されたセッションに限定して発生していました
  • インタラクティブなCLIセッションでは正常に動作していました
  • 修正後は、どの方法で作成されたセッションでも --continue が正しく機能します
  • スクリプトでの自動化処理や CI/CD パイプラインで特に重要な修正です
  • --continue は最後のセッションを継続します。特定のセッションを継続するには --resume SESSION_ID を使用してください

関連情報