Claude Code v2.1.308〜v2.1.309 の主要アップデート - ultrareview の信頼確認必須化と sed -i の挙動変更

Claude Code v2.1.308〜v2.1.309 の主要アップデート - ultrareview の信頼確認必須化と sed -i の挙動変更

Claude Code v2.1.309 がリリースされました。今回は `sed -i` の挙動変更や `claude ultrareview` のセキュリティ強化など、運用に影響する破壊的変更が含まれています。注目のアップデートと実機での確認結果をご紹介します。本日は、`sed -i` の挙動変更を試してみました。
2026.10.23

クラウド事業統括本部の石川です。Claude Code の v2.1.308 〜 v2.1.309(2026年10月22日 公開)がリリースされました。本記事では、注目のアップデートと実機での確認結果を中心にご紹介します。本日は、sed -i の挙動変更を試してみました。

前回のアップデート記事はこちらです。

https://dev.classmethod.jp/articles/20261022-cc-updates-v2-1-307/

アップデートサマリー

対象は 2 バージョン(v2.1.308、v2.1.309)で、いずれも 2026年10月22日に公開されました。v2.1.308 の CHANGELOG は「Bug fixes and reliability improvements」の 1 行のみで、具体的な変更は v2.1.309 の 79 項目に記載されています。本記事の分類では、v2.1.309 の 79 項目は修正 48 件、セキュリティ 14 件、改善 8 件、破壊的変更 4 件、開発者体験 3 件、パフォーマンス 2 件です。

セキュリティには、サンドボックス、Bash・PowerShell の許可チェック、worktree の隔離に関する修正が含まれます。本記事の分類で新機能にあたる変更はなく(VS Code のログ警告の追加は開発者体験に分類)、破壊的変更の 4 件はいずれも CHANGELOG で「Changed」と記載された変更です。VS Code 拡張、Cloud sessions、Claude Tag、Code Review の変更もあります。

注目のアップデート

claude ultrareview がワークスペースの信頼を必須に(v2.1.309)

claude ultrareview がワークスペースの信頼(workspace trust)を必須とするようになりました。ターミナルから実行した場合は確認を求め、それ以外では実行を拒否します。スクリプトから実行する場合は、値を取らない --trust-workspace を渡す(PR 番号やベースブランチはその前に置く)か、環境変数 CLAUDE_CODE_DISABLE_ULTRAREVIEW_TRUST_CHECK=1 を設定します。変更前後の書き方は「破壊的変更・非推奨」で示します。

CI やスクリプトなど、ターミナル以外から claude ultrareview を呼んでいる方は、フラグか環境変数がないと更新後に実行を拒否されるため、更新前に追加しておく必要があると考えます。

sed -i が通常の Bash コマンドとして実行され、/rewind の対象外に(v2.1.309)

sed -i は、ファイル編集をシミュレートしたプレビューではなく、通常の Bash の許可プロンプトを経て記述どおりに実行されるようになりました。他の Bash による編集と同様に、/rewind では復元されなくなります。acceptEdits モードでの扱いは、後述の「sed -i の挙動変更を試してみた」で確認します。

Claude が sed -i で置換した内容を /rewind で戻す運用をしていた方は、git での退避など別の戻し方を用意しておく必要があると感じます。

サンドボックス化された Bash でシェルの起動ファイルがサンドボックス外で実行される問題を修正(v2.1.309)

macOS と Linux のサンドボックス化された Bash コマンドで、各コマンドの実行前にシェルの起動ファイル(startup files)がサンドボックスの外で実行されていた問題が修正されました。

macOS や Linux でサンドボックスを有効にしている方にとっては、サンドボックスの境界に関わる修正のため、早めに取り込みたい修正だと感じます。

--mcp-config で渡した MCP 設定ファイルを変更できてしまう問題を修正(v2.1.309)

サンドボックス化されたコマンドや自動承認された編集が、--mcp-config で渡した MCP 設定ファイルを変更できてしまう問題が修正されました。

--mcp-config で MCP の設定ファイルを渡し、自動承認やサンドボックスと組み合わせて Claude Code を動かしている方は、優先して更新したい修正だと考えます。

分割ペインのチームメイトがリーダーのツール制限を引き継がない問題を修正(v2.1.309)

分割ペインで動作するエージェントチームのメンバー(teammate)が、リーダーのコマンドラインで指定したツールの deny ルールと --tools のルールを引き継いでいなかった問題が修正されました。

リーダーの起動時に --tools や deny ルールでツールを絞ってエージェントチームを使っている方は、更新前のバージョンではその制限が分割ペインのチームメイトに効いていなかった点を把握しておくとよいと考えます。

大きなネストされた CLAUDE.md でコンパクションが繰り返される問題を修正(v2.1.309)

非常に大きなネストされた CLAUDE.md の配下にあるファイルを読んだ後、セッションがコンパクションを繰り返す問題が修正されました。サイズ上限を超えるネストされた CLAUDE.md は、先頭部分のみが読み込まれるようになりました。

サブディレクトリに大きな CLAUDE.md を置いている方は、上限を超えた部分が読み込まれなくなるため、重要な指示はファイルの先頭に寄せておくとよいと考えます。

対象バージョンと期間

バージョン 公開日
v2.1.308 2026年10月22日
v2.1.309 2026年10月22日

セキュリティ

  • サンドボックス化された Bash で起動ファイルがサンドボックス外で実行される問題を修正: 注目のアップデートを参照(v2.1.309)
  • macOS サンドボックスの denyWrite がシンボリックリンク経由で適用されない問題を修正: パターンのフォルダにシンボリックリンク経由で到達する場合に、denyWrite の glob パターンがパスの実体の場所へ適用されていませんでした(v2.1.309)
  • --mcp-config の MCP 設定ファイルを変更できてしまう問題を修正: 注目のアップデートを参照(v2.1.309)
  • 無効化した MCP サーバーが再接続される問題を修正: print モードと SDK のセッションで、無効化した MCP サーバーがその後の許可プロンプトによって再接続されていました(v2.1.309)
  • Bash の許可チェックが失敗しうるリダイレクトの変数を信頼する問題を修正: リダイレクト先を開けずに失敗する可能性があるコマンドで設定された変数を、Bash の許可チェックが信頼していました(v2.1.309)
  • cd を伴う git の複合コマンドで許可プロンプトが出ない問題を修正: git の実行前にディレクトリを移動する一部の複合コマンドで、cd がラップされていたりプレフィックスが付いていたりすると、通常の cd のときのような許可プロンプトが出ていませんでした(v2.1.309)
  • Edit(path) の deny ルールが Bash のリダイレクトをブロックしない問題を修正: サブシェルを含む一部のコマンドで、Edit(path) の deny ルールがそのパスへの Bash のリダイレクトをブロックしていませんでした(v2.1.309)
  • worktree 隔離セッションが拒否すべきコマンドを受け付ける問題を修正: ロケール指定のプレフィックス付きコマンドの一部と、zsh 上の一部の算術コマンドを、隔離ガードで拒否すべきところ受け付けていました(v2.1.309)
  • シンボリックリンク経由でプロファイルストアの書き込み保護が適用されない問題を修正: 設定ディレクトリにシンボリックリンク経由で到達する場合に、プロファイルストアの書き込み保護が適用されていませんでした(v2.1.309)
  • 分割ペインのチームメイトがリーダーのツール制限を引き継がない問題を修正: 注目のアップデートを参照(v2.1.309)
  • PowerShell のフックがブロックしない・フェイルオープンになる問題を修正: PowerShell で実行されるフックが、フックのプログラムが終了コード 2 で終了してもブロックしていませんでした。また Windows で Git for Windows が未インストールの場合に、"shell": "powershell" を指定した PreToolUse / PermissionRequest フックがフェイルオープン(失敗時に許可扱い)になっていました(v2.1.309)
  • Linux でサンドボックスの書き込み拒否が解除される問題を修正: バックグラウンドのコマンドがセッション終了後も動き続けると、サンドボックスの書き込み拒否が解除されていました(v2.1.309)
  • Windows の PowerShell 許可チェックが一部の Set-Location / cd を自動承認する問題を修正: カレントディレクトリを対象とし追加の引数が付いた一部の Set-Location / cd コマンドが自動承認されていました。承認を求めるようになりました(v2.1.309)

改善

  • worktree の作成・再利用時に、git がオブジェクトをオンデマンドで取得しないよう変更されました。対象は通常のクローンと、Bash サンドボックスを設定した partial clone で、そうした partial clone では先にオブジェクトを取得します(v2.1.309)。
  • ディスク容量不足時の表示が改善されました。ディスクが満杯で中断された Bash コマンドはその旨と空けるべきフォルダを示し、満杯の一時ボリュームで起動した場合は ENOSPC エラーをそのまま出さず分かりやすいメッセージを表示します(v2.1.309)。
  • /claude-api スキルが Managed Agents のサブエージェントチームを、coordinator ではなく、dynamic workflows を既定で有効にした multiagent_20261001 で構築するようになりました(v2.1.309)。
  • hooks モジュールのネストが深すぎて読み込めない場合に、スタックオーバーフローのメッセージだけでなく、該当ファイルを示すようになりました(v2.1.309)。
  • [VS Code] ディクテーションや拡張機能自身のリクエストが証明書の検証に失敗した場合(TLS インスペクションを行うプロキシの配下など)に、対処方法を示すログ警告が追加されました(v2.1.309)。
  • このほか、/claude-api スキル(OpenTelemetry のトレーシングの提案、未サポートと答える前の最新ドキュメントの確認など)、同梱の dataviz スキル(APCA への対応)、Self-hosted runner、Cloud sessions の Changes ペインの表示が改善・更新されています(v2.1.309)。

パフォーマンス

  • Windows で Claude Code が自身のために実行する多くの git コマンドが高速化されました。また全プラットフォームで、git が他の言語に設定されていても、それらのコマンドのエラーは英語で表示されるようになりました(v2.1.309)。
  • [VS Code] チャットパネルでの Edit と Write が高速化されました。各編集の後に新しい問題(problems)を待つ時間が、従来の 1〜1.5 秒から、ほとんどの場合 0.75 秒になりました(v2.1.309)。

修正(主要なもの)

安定性・操作性に関わる修正を中心に抜粋します。

  • 大きなネストされた CLAUDE.md でコンパクションが繰り返される問題を修正: 注目のアップデートを参照(v2.1.309)
  • Claude Code が作成する worktree が git の replace refs を無視しない問題を修正: Claude Code が作成する worktree とブランチのチェックアウトが、git の replace refs を無視するようになりました。Claude Code の他の git 操作では既に無視していました(v2.1.309)
  • Claude Desktop がホストするセッションでメッセージが失われる問題を修正: 接続の更新時にメッセージが失われることがありました(v2.1.309)
  • /rewind の一覧が「No code changes」と表示する問題を修正: /code-review --fix、サブエージェント、シェルコマンドによってチェックポイント対象のファイルを変更したターンで発生していました(v2.1.309)
  • --add-dir のフォルダ内のスキルが名前の重複で呼び出せない問題を修正: 同じ名前のスキルが既にある場合に呼び出せませんでした。<folder>:<name> の形で提示されるようになりました(v2.1.309)
  • claude.ai から同期したプラグインとスキルが削除される問題を修正: ディスクの読み取りエラーの後に削除されることがあり、セッションの途中で削除されることもありました(v2.1.309)
  • Amazon Bedrock で fine-grained tool streaming が無効のままになる問題を修正: ANTHROPIC_BEDROCK_BASE_URL にデフォルトの bedrock-runtime.<region>.amazonaws.com エンドポイントを設定している場合に発生していました(v2.1.309)
  • GitHub で無関係なユーザーに通知が届く問題を修正: PR・Issue・コメントで、Claude が役割名やプレースホルダーをメンションの形で書いていました(v2.1.309)
  • macOS で起動のたびに Command Line Developer Tools のダイアログが開く問題を修正: Xcode も Command Line Tools も入っていない Mac で発生していました(v2.1.309)
  • [VS Code] Claude パネルが空白のままになる問題を修正: エディタがファイルの不完全なコピーをキャッシュした後に発生していました。自動で回復するか、何が起きたかと直し方を表示するようになりました(v2.1.309)
  • [Claude Tag] 承認した下書きが DM に投稿される問題を修正: Slack の Claude が、チャンネル向けに承認した下書きを誤ってユーザーの DM に投稿していました。チャンネルの指定がない投稿は拒否され、承認したチャンネルへ投稿されるようになりました(v2.1.309)
  • 地味に嬉しい修正: 長いツール出力のプレビューが絵文字の途中で切られ、セッションのトランスクリプトを jq でパースできなくなっていた問題が修正されました(v2.1.309)。トランスクリプトを jq で集計している方には地味に嬉しい修正だと感じます。
  • このほか、キー操作(ctrl+enter、ctrl+o)、/claude-api スキルの記述、VS Code 拡張、Cloud sessions、Claude Tag など、多数の細かな不具合が修正されています。

破壊的変更・非推奨

CHANGELOG で「Changed」として記載されている 6 件のうち、既存の操作や自動化に影響する 4 件を扱います。非推奨の記載はありません。

sed -i が /rewind で復元されなくなった(v2.1.309)

注目のアップデートで紹介した変更です。以下はコマンドの例です(コマンドとファイル名は例です)。sed の書式は GNU 版です。macOS 標準の sed では sed -i '' とします。

変更前(〜v2.1.308):

# Claude が実行するコマンドの例
sed -i 's/oldName/newName/g' src/config.ts
# → ファイル編集をシミュレートしたプレビューとして扱われる
# → /rewind で変更前の内容に復元できる

変更後(v2.1.309〜):

# 同じコマンド
sed -i 's/oldName/newName/g' src/config.ts
# → 通常の Bash の許可プロンプトを経て、記述どおりに実行される
# → 他の Bash による編集と同様、/rewind では復元されない

claude ultrareview がワークスペースの信頼を必須に(v2.1.309)

注目のアップデートで紹介した変更です。CHANGELOG の記載をもとに、実行のしかたによる動作の違いを図にすると次のとおりです。

以下は設定例です(PR 番号は例です)。claude ultrareview 1234 の書式は公式ドキュメント(Ultrareview)の例に合わせ、--trust-workspace の位置は v2.1.309 の claude ultrareview --help で確認しました。

変更前(〜v2.1.308): ワークスペースの信頼は必須ではありませんでした。

# CI のジョブで PR 1234 をレビューする例
claude ultrareview 1234

変更後(v2.1.309〜): ターミナル以外から実行すると、上のコマンドは拒否されます。次のいずれかを使います。

# 方法 1: --trust-workspace を付ける(PR 番号やベースブランチはその前に置く)
claude ultrareview 1234 --trust-workspace

# 方法 2: 環境変数で信頼の確認を無効にする
CLAUDE_CODE_DISABLE_ULTRAREVIEW_TRUST_CHECK=1 claude ultrareview 1234

bypass permissions モードで危険な rm / rmdir を即座に拒否(v2.1.309)

Desktop アプリと VS Code の bypass permissions モードで、危険な rm / rmdir に対して表示していた確認プロンプトが、書き換えのヒントを付けてコマンドを即座に拒否する動作に変わりました。CHANGELOG には、これにより無人のセッションが止まらずに進むと記載されています。以下は挙動の対比です。

変更前(〜v2.1.308):

対象: Desktop アプリ / VS Code の bypass permissions モード
危険な rm / rmdir → 確認プロンプトを表示

変更後(v2.1.309〜):

対象: Desktop アプリ / VS Code の bypass permissions モード
危険な rm / rmdir → 書き換えのヒントを付けて即座に拒否(無人のセッションは止まらずに進む)

どの rm / rmdir が危険と判定されるかは、CHANGELOG には記載がありません。

サンドボックスを実行できないときの、対象外コマンドの扱いの変更(v2.1.309)

設定でサンドボックスの対象外にしたコマンドについて、サンドボックスが有効だが実行できない状態のときの扱いが変わりました。以下は挙動の対比です。

変更前(〜v2.1.308):

状態: サンドボックスが有効だが実行できない
対象: 設定でサンドボックスの対象外にしたコマンド
→ 書き込み前の確認はなく、サンドボックスなしのフォールバック実行が行われていた(推測)

変更後(v2.1.309〜):

状態: サンドボックスが有効だが実行できない
対象: 設定でサンドボックスの対象外にしたコマンド
→ サンドボックスの書き込み許可リストにあるパスへ書き込む前に確認を求める
→ サンドボックスなしのフォールバック実行は拒否される

変更前の挙動は CHANGELOG に明記されておらず、「書き込む前に確認を求めるよう変更」「サンドボックスなしのフォールバック実行は拒否される」という記述からの推測です。

sed -i の挙動変更を試してみた

v2.1.309 で、sed -i はファイル編集をシミュレートしたプレビューではなく、通常の Bash の許可プロンプトを経て実行されるようになり、/rewind では復元されなくなりました。ここでは、ファイル編集を自動承認する acceptEdits モードの claude -p で、sed -i がどう扱われるかを確認します。許可プロンプトの表示と /rewind の挙動は対話操作が必要なため、手順のみを示します。

検証の手順と出力は、macOS 上の Claude Code v2.1.309 で実行して確認したものです。v2.1.308 以前の同じ条件での動作は確認していません。

この検証で確認すること

  • acceptEdits モードで sed -i の実行を依頼したとき、許可が必要な Bash コマンドとして扱われるか
  • -i を付けない sed との違い
  • 対話モードでの許可プロンプトの表示と、sed -i による変更が /rewind で復元されないこと(手動で確認)

前提

  • 公式ドキュメント(Permission modes)では、acceptEdits モードはファイル編集に加えて、mkdir、touch、rm、rmdir、mv、cp、sed のファイル操作コマンドも、作業ディレクトリ内のパスであれば自動承認すると説明されています。
  • macOS 標準の sed(BSD 版)を使います。BSD 版の -i は直後に拡張子を引数に取り、長さ 0 の拡張子を渡すとバックアップを作りません。そのため、上書きだけする場合は sed -i '' とします。GNU 版の書式 sed -i 's/…/…/' ファイル は、macOS 標準の sed ではエラーになります。
  • 実行する claude -p は 3 回で、いずれも --max-turns 1 でターン数を制限します。ユーザー設定(~/.claude/settings.json)は書き換えず、許可モードは --permission-mode で指定します。

Step 1: 作業用ディレクトリとサンプルファイルを作る

% mkdir -p ~/sed-i-handson
% cd ~/sed-i-handson
% printf 'oldName\n' > sample.txt

Step 2: acceptEdits モードで sed -i の実行を依頼する

sed -i '' 's/oldName/newName/g' sample.txt を Bash ツールで実行するよう依頼し、結果を JSON で保存します。

$ cat sample.txt
oldName
$ claude -p --max-turns 1 --permission-mode acceptEdits --output-format json "Bash ツールで次のコマンドをそのまま 1 回だけ実行してください。他のツールは使わないでください: sed -i '' 's/oldName/newName/g' sample.txt" > result.json
exit code: 1
$ jq '{subtype, is_error, num_turns, permission_denials}' result.json
{
  "subtype": "error_max_turns",
  "is_error": true,
  "num_turns": 2,
  "permission_denials": [
    {
      "tool_name": "Bash",
      "tool_use_id": "toolu_016BvVftey9xbct8coESk153",
      "tool_input": {
        "command": "sed -i '' 's/oldName/newName/g' sample.txt",
        "description": "sample.txt 内の oldName を newName に置換"
      }
    }
  ]
}
$ cat sample.txt
oldName

各指定の意味は次のとおりです。

指定 内容
-p 対話画面を開かずに 1 回だけ実行する
--max-turns 1 エージェントのターン数を 1 に制限する
--permission-mode acceptEdits 許可モードを acceptEdits にする(Claude Code がファイル編集を自動承認するモード)
--output-format json 結果を 1 つの JSON で出力する

permission_denials に、tool_name が Bash で、依頼した sed -i のコマンドがそのまま記録されました。sample.txt は oldName のままです。acceptEdits モードでも、-i を付けた sed は自動承認されず、実行されませんでした。subtype は error_max_turns、exit code は 1 です。result.json の errors には「Reached maximum number of turns (1)」と記録されており、公式ドキュメント(CLI reference)でも、--max-turns は上限に達するとエラーで終了すると説明されています。

Step 3: sed -i.bak と -i なしの sed で比べる

空の引数 '' を含まない書式でも同じ結果になるかを確かめるため、sed -i.bak でも試します。

$ claude -p --max-turns 1 --permission-mode acceptEdits --output-format json "Bash ツールで次のコマンドをそのまま 1 回だけ実行してください。他のツールは使わないでください: sed -i.bak 's/oldName/newName/g' sample.txt" > result.json
exit code: 1
$ jq '{subtype, is_error, num_turns, permission_denials}' result.json
{
  "subtype": "error_max_turns",
  "is_error": true,
  "num_turns": 2,
  "permission_denials": [
    {
      "tool_name": "Bash",
      "tool_use_id": "toolu_01MjAkdKqWVdC8pRcjrhoQ1M",
      "tool_input": {
        "command": "sed -i.bak 's/oldName/newName/g' sample.txt",
        "description": "sample.txt 内の oldName を newName に置換し、バックアップを作成"
      }
    }
  ]
}
$ ls
result.json
sample.txt
$ cat sample.txt
oldName

sed -i.bak でも permission_denials に記録され、sample.txt は変更されず、バックアップの sample.txt.bak も作られていません。

次に、-i を付けない sed を試します。こちらはファイルを書き換えず、置換結果を標準出力に出すだけのコマンドです。ツールの呼び出しと結果を確認するため、--output-format stream-json --verbose で出力します。--output-format json ではなく stream-json を使うのは、--output-format json の出力(result.json)が最終結果だけをまとめた JSON で、ツールの呼び出し(tool_use)とその結果(tool_result)を含まないためです。手元の result.json のキーを確認したところ、permission_denials はありましたが、この 2 つはありませんでした。

$ claude -p --max-turns 1 --permission-mode acceptEdits --output-format stream-json --verbose "Bash ツールで次のコマンドをそのまま 1 回だけ実行してください。他のツールは使わないでください: sed 's/oldName/newName/g' sample.txt" > stream.jsonl
exit code: 1
$ jq -c 'select(.type=="assistant" or .type=="user") | .message.content[]? | select(.type=="tool_use" or .type=="tool_result") | {type, name, command: .input.command, content, is_error}' stream.jsonl
{"type":"tool_use","name":"Bash","command":"sed 's/oldName/newName/g' sample.txt","content":null,"is_error":null}
{"type":"tool_result","name":null,"command":null,"content":"newName","is_error":false}
$ jq -c 'select(.type=="result") | {subtype, permission_denials}' stream.jsonl
{"subtype":"error_max_turns","permission_denials":[]}
$ cat sample.txt
oldName

-i を付けない sed は許可を求められずに実行され、ツールの結果として newName が返りました。permission_denials は空です。

結果のまとめ

依頼したコマンド permission_denials 実行後の sample.txt
sed -i '' 's/oldName/newName/g' sample.txt Bash として記録(拒否) oldName のまま
sed -i.bak 's/oldName/newName/g' sample.txt Bash として記録(拒否) oldName のまま(sample.txt.bak も作成されない)
sed 's/oldName/newName/g' sample.txt 空(実行され、newName を出力) oldName のまま(-i なしのため)

公式ドキュメント(Permission modes)では acceptEdits で自動承認されるコマンドに sed が挙げられていますが、v2.1.309 の今回の確認では、-i を付けた sed は 2 つの書式とも自動承認されず、permission_denials に記録されました。ドキュメントの記載と今回の結果がどう対応するかは確認できていません。

Step 4(手動): 許可プロンプトと /rewind を確認する

公式ドキュメント(Checkpointing)によると、Claude がファイル編集ツールで一度編集したファイルは、その後に Bash コマンドで加えた変更も /rewind で元に戻ります。一方、Bash コマンドだけで変更したファイルは追跡されず、そのまま残ります。ここでは、Claude のファイル編集ツールで編集していない sample.txt を使います。

  1. ~/sed-i-handson で、許可モードに Manual モードを指定して claude を起動します。**Manual モードは、ファイル編集やシェルコマンドの実行など、ほとんどの操作の前に確認を求めるモードです。**auto モードでは許可プロンプトの代わりに分類器が判定するため、既定の許可モードを auto にしている場合も、ここでは Manual モードを指定します。manual は、v2.1.309 の claude --help で --permission-mode の選択肢に表示される値です。

    % cd ~/sed-i-handson
    % claude --permission-mode manual
    
  2. 次のプロンプトを送ります。

    Bash ツールで sed -i '' 's/oldName/newName/g' sample.txt を実行してください
    
  3. 表示される確認が、ファイル編集のプレビューではなく、通常の Bash コマンドの許可プロンプトであることを確認し、承認します。

  4. プロンプトに !cat sample.txt と入力して実行し、内容が newName に変わったことを確認します。先頭に ! を付けた入力は、Claude を介さずにシェルコマンドとして実行されます(公式ドキュメント Interactive mode の Shell mode)。

  5. /rewind を実行し、手順 2 のプロンプトを選んで、表示される操作を確認します。公式ドキュメントによると、コードを復元する 2 つの操作(Restore code and conversation と Restore code)は、選んだ時点に追跡対象のファイル変更がある場合にのみ表示されます。

  6. コードを復元する操作が表示された場合は、それを選んだ後に !cat sample.txt を実行し、内容が newName のまま(復元されない)であることを確認します。表示されない場合は、Never mind でメニューを閉じます。Restore conversation は、ファイルを今の状態のまま残して会話だけを巻き戻す操作のため、この確認では選びません。

Claude のファイル編集ツールで編集していないファイルでは、sed -i による変更を /rewind で戻せないため、sed -i を承認する前に git で変更を退避しておくと安心だと感じます。

最後に

v2.1.308〜v2.1.309 は、新機能に分類される変更はなく、サンドボックスや許可チェックまわりの修正が中心のリリースだと感じます。一方で sed -i と claude ultrareview の挙動変更は、/rewind で戻す運用や CI のジョブに直接影響するため、更新前に確認しておきたい変更ではないでしょうか。

CI で claude ultrareview を使っている方や /rewind を活用している方は、破壊的変更の節を確認したうえで、アップデートして試してみてはいかがでしょうか。

参考文献

https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md

https://code.claude.com/docs/en/changelog

https://dev.classmethod.jp/articles/20261022-cc-updates-v2-1-307/


Claudeならクラスメソッドにお任せください

クラスメソッドは、Anthropic社とリセラー契約を締結しています。各種製品ガイドから、業種別の活用法、フェーズごとのお悩み解決などサービス支援ページにまとめております。まずはご覧いただき、お気軽にご相談ください。

サービス詳細を見る

この記事をシェアする

AI白書

関連記事