原文(日本語に翻訳)
[VSCode] すべてのユーザーに対してセッションフォークと巻き戻し機能を有効にしました。
原文(英語)
[VSCode] Enabled session forking and rewind functionality for all users
概要
Claude Code v2.1.19で、VSCode拡張機能のすべてのユーザーに対してセッションフォーク(分岐)と巻き戻し機能が利用可能になりました。これまでベータ版や一部のユーザーに限定されていたこれらの機能が、正式に全員が使えるようになりました。セッションフォークにより、会話の途中から別の方向性を試すことができ、巻き戻し機能により過去のポイントに戻って作業をやり直すことが可能です。
基本的な使い方
VSCode拡張機能でClaude Codeを使用している場合、会話履歴からフォークや巻き戻しができます。
セッションフォーク:
- VSCodeでClaude Codeのチャットパネルを開く
- 会話履歴の任意のメッセージを選択
- 「Fork from here」オプションをクリック
- 新しいセッションが作成され、選択した地点から別の方向で作業可能
セッション巻き戻し:
- チャット履歴の過去のポイントを選択
- 「Rewind to here」オプションをクリック
- セッションがその地点まで巻き戻され、以降のメッセージが削除される
実践例
複数のアプローチを試す
機能実装で異なるアプローチを比較:
元のセッション:
User: ユーザー認証機能を実装してください
Claude: JWTを使った実装を提案します...
[実装コード A]
# ここでフォーク
Fork 1: OAuth2.0を試す
User: OAuth2.0での実装に変更してください
Claude: OAuth2.0での実装です...
[実装コード B]
Fork 2: セッションベースを試す
User: セッションベースの認証に変更してください
Claude: セッションベースの実装です...
[実装コード C]
# 各アプローチを比較して最適なものを選択エラー修正の試行錯誤
異なる修正方法を並行して試す:
元のセッション:
User: このバグを修正してください
Claude: [修正案 A を実装]
Build: Failed - 別のエラーが発生
# ここでフォーク
Fork 1: 別のアプローチで修正
User: 別の方法で修正してください
Claude: [修正案 B を実装]
Build: Success!
元のセッション(巻き戻して別の方向へ):
# 最初の失敗地点まで巻き戻し
User: より根本的な原因を調査してください
Claude: [詳細な調査と修正案 C]リファクタリングの選択肢を探る
元のセッション:
User: この関数をリファクタリングしてください
Claude: 以下のようにリファクタリングしました
[リファクタリング A - クラスベース]
# フォーク1: 関数型アプローチを試す
User: 関数型プログラミングのスタイルで書き直してください
Claude: 関数型スタイルでの実装です
[リファクタリング B - 関数型]
# フォーク2: デザインパターンを適用
User: Strategy パターンを使って実装してください
Claude: Strategy パターンでの実装です
[リファクタリング C - Strategy]
# 各実装を比較してプロジェクトに最適なものを選択デバッグの分岐点を管理
元のセッション:
User: パフォーマンス問題を調査してください
Claude: データベースクエリが原因のようです
User: クエリを最適化してください
Claude: [最適化 A - インデックス追加]
Result: 少し改善したが不十分
# 巻き戻して別のアプローチ
Rewind to: "パフォーマンス問題を調査してください" の後
User: キャッシュ戦略も含めて検討してください
Claude: クエリ最適化とキャッシュの両方を実装します
[最適化 B - インデックス + Redis キャッシュ]
Result: 大幅に改善!UI/UXの異なるバリエーションを作成
元のセッション:
User: ユーザープロフィールページを作成してください
Claude: [デザイン A - カードレイアウト]
Fork 1: タブレイアウトを試す
User: タブベースのレイアウトに変更してください
Claude: [デザイン B - タブレイアウト]
Fork 2: サイドバーレイアウト
User: サイドバー付きのレイアウトにしてください
Claude: [デザイン C - サイドバー]
# 各デザインをプレビューして選択データ移行戦略の検討
元のセッション:
User: データベースをMongoDBからPostgreSQLに移行したい
Claude: ダイレクト移行スクリプトを作成します
[移行スクリプト A - 一括移行]
Fork 1: 段階的移行を検討
User: 段階的に移行する方法を提案してください
Claude: デュアルライト戦略での移行計画です
[移行スクリプト B - 段階的移行]
Fork 2: ダウンタイムゼロを目指す
User: ダウンタイムなしで移行する方法は?
Claude: ブルーグリーンデプロイメント戦略です
[移行スクリプト C - ブルーグリーン]テスト戦略の比較
元のセッション:
User: この機能のテストを書いてください
Claude: [ユニットテスト A]
Fork 1: E2Eテストも追加
User: E2Eテストも含めてください
Claude: [ユニットテスト + E2Eテスト B]
Fork 2: 統合テスト重視
User: 統合テストを中心に構成してください
Claude: [統合テスト中心の構成 C]
# プロジェクトのニーズに合わせて選択コードレビューのフィードバック対応
元のセッション:
User: このPRのレビューコメントに対応してください
Claude: [対応 A - 最小限の修正]
# レビュアーから追加のフィードバック
Fork 1: より大きなリファクタリング
User: レビュアーの提案通り、大規模にリファクタリングしてください
Claude: [対応 B - 大規模リファクタリング]
Fork 2: 段階的に対応
User: 段階的に分割してコミットしてください
Claude: [対応 C - 複数コミットに分割]注意点
- VSCode専用機能: この機能はVSCode拡張機能でのみ利用可能です。CLIでは別の方法でセッション管理を行います
- ストレージ容量: 複数のフォークを作成すると、セッションデータが増加します。定期的に不要なフォークを削除してください
- 巻き戻しは破壊的: 巻き戻しを実行すると、その地点以降のメッセージが削除されます。重要な内容は事前にフォークして保存してください
- コスト管理: 各フォークは独立したセッションとして API 使用量にカウントされます
- フォークの命名: 複数のフォークを作成する場合は、目的が分かるように名前を付けると管理しやすくなります
- コンテキストの引き継ぎ: フォークは分岐点までのコンテキストを引き継ぎます。それ以降の変更は含まれません