Skip to content

チェックポイント

チェックポイントは、VJSPタスク中にワークスペースのファイルに対して自動的にバージョン管理を提供し、AIによる提案内容を安全に試行したり、不要な変更から簡単に復旧したりできるようにします。

チェックポイントを利用すると、以下のことが可能になります:

  • AIが提案した変更を安全に試行
  • 不要な変更を簡単に元に戻す
  • 異なる実装アプローチを比較
  • 作業内容を失うことなく以前のプロジェクト状態を復元

ⓘ 重要事項

  • チェックポイントはデフォルトで有効になっています。
  • チェックポイント機能を正しく動作させるには Git のインストールが必要です。
  • GitHub アカウントやリポジトリは不要です。
  • Git ユーザー設定(例:名前やメールアドレス)も不要です。
  • シャドウ Git リポジトリは、プロジェクト内に既存の Git 設定があっても独立して動作します。

設定オプション

チェックポイントの設定は、VJSP 設定内の 「アーカイブポイント」 セクションからアクセスできます:

  1. ⚙️アイコンをクリック → 「アーカイブポイント」 を選択して設定を開く
  2. 「自動アーカイブポイントを有効にする」 チェックボックスをオンまたはオフにする

チェックポイントの仕組み

VJSP は、メインのバージョン管理システムとは 完全に分離された「シャドウ Git リポジトリ」 を使用して、プロジェクトの状態スナップショット(チェックポイント)を記録します。これらのチェックポイントは、AI支援ワークフロー中(タスク開始時・ファイル変更時・コマンド実行時など)に自動的に保存されます。

チェックポイントはシャドウリポジトリ内に Git コミットとして保存され、以下の内容をキャプチャします:

  • ファイル内容の変更
  • 新規追加されたファイル
  • 削除されたファイル
  • リネームされたファイル
  • バイナリファイルの変更

チェックポイントの使い方

チェックポイントは、チャットインターフェースを通じてワークフローにシームレスに統合されています。

チャット履歴には以下の2種類のチェックポイントが表示されます:

  • 初期チェックポイント:プロジェクトの開始時点の状態をマーク

  • 通常のチェックポイント:ファイル変更やコマンド実行後に表示

各チェックポイントには主に以下の2つのアクションがあります:

差分表示(View Diff)

現在のワークスペースと過去のチェックポイントとの差分を比較するには:

  1. チャット履歴から目的のチェックポイントを特定
  2. チェックポイントの 「View Diff」 ボタンをクリック

  1. 差分ビューで変更内容を確認:
    • 追加された行は緑色でハイライト
    • 削除された行は赤色でハイライト
    • 変更されたファイルは行単位で詳細に表示
    • リネーム/移動されたファイルはパスの変更を追跡
    • 新規または削除されたファイルは明確にラベル付け

チェックポイントの復元(Restore Checkpoint)

プロジェクトを過去のチェックポイントの状態に戻すには:

  1. チャット履歴から復元したいチェックポイントを特定
  2. 「Restore Checkpoint」 ボタンをクリック

  1. 以下のいずれかの復元オプションを選択:

  • 「ファイルのみを復元(Restore Files Only)」 – ワークスペースのファイルのみをチェックポイントの状態に戻し、チャット履歴はそのまま維持します。会話の文脈を保ちつつ代替実装を比較したい場合に最適で、プロジェクト状態を素早く切り替えられます。このオプションは確認ダイアログなしで即時実行可能です。

  • 「ファイルとタスクを復元(Restore Files and Task)」 – ワークスペースのファイルだけでなく、それ以降のすべてのチャットメッセージも削除して完全にリセットします。コードと会話をチェックポイント時点の正確な状態に戻したい場合に使用します。この操作は元に戻せないため、確認ダイアログが表示されます。

制限事項と注意点

  • スコープ:チェックポイントはアクティブな VJSP タスク中に発生した変更のみをキャプチャします
  • 外部での変更:手動編集や他のツールによる変更は含まれません
  • 大容量ファイル:非常に大きなバイナリファイルはパフォーマンスに影響を与える可能性があります
  • 未保存の作業:復元時にワークスペース内の未保存の変更は上書きされます

技術的な実装

チェックポイントのアーキテクチャ

チェックポイントシステムは以下の構成要素で構成されています:

  1. シャドウ Git リポジトリ:チェックポイントの追跡専用に作成される独立した Git リポジトリ。チェックポイント状態の永続的ストレージとして機能します。
  2. チェックポイントサービス:Git 操作および状態管理を担当:
    • リポジトリの初期化
    • チェックポイントの作成・保存
    • 差分計算
    • 状態の復元
  3. UI コンポーネント:チャット内に表示され、ユーザーがチェックポイントと対話できるインターフェース要素

復元処理の流れ

復元が実行されると、VJSP は以下を行います:

  • 指定されたチェックポイントコミットに対してハードリセットを実行
  • シャドウリポジトリ内の全ファイルをワークスペースにコピー
  • 内部のチェックポイント追跡状態を更新

ストレージのスコープ

チェックポイントは タスク単位(task-scoped) で管理され、1つのタスクセッションに限定されます。

差分計算

チェックポイント間の比較は、Git のネイティブな差分機能を活用して構造化されたファイル差分を生成します:

  • 変更されたファイルは行単位で表示
  • バイナリファイルは正しく検出・処理
  • ファイルのリネームや移動も正確に追跡
  • 新規作成・削除されたファイルも明確に識別

ファイル除外と無視パターン

チェックポイントシステムは、関連性のあるファイルのみを追跡するため、インテリジェントなファイル除外機能を備えています:

組み込み除外パターン

システムには包括的な組み込み除外パターンが含まれており、以下のファイルやディレクトリは自動的に無視されます:

  • ビルド成果物や依存ディレクトリ(node_modules/, dist/, build/
  • メディアおよびバイナリアセット(画像、動画、音声)
  • キャッシュおよび一時ファイル(.cache/, .tmp/, .bak
  • 機密設定ファイル(.env
  • 大容量データファイル(アーカイブ、実行可能ファイル、バイナリ)
  • データベースファイルおよびログ

これらのパターンは、シャドウリポジトリの初期化時に .git/info/exclude に書き込まれます。

.gitignore のサポート

チェックポイントシステムはワークスペース内の .gitignore パターンを尊重します:

  • .gitignore で除外されたファイルはチェックポイントの作成トリガーにならない
  • 除外されたファイルはチェックポイントの差分にも表示されない
  • ファイル変更のステージング時には標準的な Git ignore ルールが適用される

.vjspignore の動作

.vjspignore ファイル(AIがアクセスできるファイルを制御)は、チェックポイントの追跡とは 別個に扱われます

  • .vjspignore で除外されていても .gitignore で除外されていないファイルは、チェックポイントに含まれる
  • AIがアクセスできないファイルの変更も、チェックポイント経由で復元可能

この分離は意図的なものであり、.vjspignore はAIのアクセス範囲を制限するものであって、バージョン管理対象を決定するものではありません。

ネストされた Git リポジトリ

チェックポイントシステムはネストされた Git リポジトリに対しても特別な処理を実装しています:

  • 操作中はネストされた .git ディレクトリを一時的に .git_disabled にリネーム
  • 操作後には元の名前に戻す
  • ネストされたリポジトリ内のファイルも正しく追跡可能
  • ネストされたリポジトリの機能性と整合性を維持

同時実行制御

リポジトリの状態が破損しないよう、Git 操作はキューイングされ、同時実行が防止されます。これにより、高頻度のチェックポイント操作でも安全に処理が完了します。

Git のインストール

チェックポイント機能を使用するには、システムに Git がインストールされている必要があります。内部では simple-git ライブラリが使用されており、これはシャドウリポジトリの作成・管理のために Git コマンドラインツールに依存しています。

macOS

  1. Homebrew 経由でインストール(推奨):

    bash
    brew install git
  2. 代替手段:Xcode Command Line Tools 経由でインストール:

    bash
    xcode-select --install
  3. インストール確認:

    • ターミナルを開く
    • git --version を実行
    • git version 2.40.0 のようなバージョン番号が表示されることを確認

Windows

  1. Git for Windows をダウンロード:

  2. インストーラを実行:

    • ライセンス契約に同意
    • インストール先を指定(デフォルト推奨)
    • コンポーネントを選択(通常はデフォルトで十分)
    • デフォルトエディタを選択
    • コマンドラインからの Git の使用方法を選択(推奨:「Git from the command line and also from 3rd-party software」)
    • 改行コードの変換設定(推奨:「Checkout Windows-style, commit Unix-style line endings」)
    • インストールを完了
  3. インストール確認:

    • コマンドプロンプトまたは PowerShell を開く
    • git --version を実行
    • git version 2.40.0.windows.1 のようなバージョン番号が表示されることを確認

Linux

UOS:

bash
sudo apt install git -y

インストール確認:

  • ターミナルを開く
  • git --version を実行
  • バージョン番号が表示されることを確認