ファイル変更を追跡し、任意の時点に復元できる機能です。Gitコマンドを使用してセッション単位でファイル変更を管理します。
有効化
/experiment
# リストから「Checkpointing」を選択
または
q settings chat.enableCheckpoint true
自動有効化
Gitリポジトリ内では自動的に有効化されます(セッション終了時にクリーンアップ)。
基本コマンド
チェックポイント一覧
/checkpoint list
/checkpoint list --limit 10
表示例:
[0] 2025-09-18 14:00:00 - Initial checkpoint
[1] 2025-09-18 14:05:31 - add two_sum.py (+1 file)
[2] 2025-09-18 14:07:10 - add tests (modified 1)
詳細表示
/checkpoint expand 2
表示例:
[2] 2025-09-18 14:07:10 - add tests
└─ [2.1] fs_write: Add minimal test cases to two_sum.py (modified 1)
差分確認
/checkpoint diff 1 2 # チェックポイント間の差分
/checkpoint diff 1 # チェックポイント1と現在の差分
/checkpoint diff 1 HEAD # 同上
復元
/checkpoint restore # インタラクティブ選択
/checkpoint restore 2 # チェックポイント2に復元
/checkpoint restore 2 --hard # 完全復元(後で作成したファイルも削除)
復元モード:
- デフォルト: 変更・削除されたファイルを復元、チェックポイント後に作成されたファイルは保持
- --hard: ワークスペースをチェックポイントの状態に完全一致させる(後で作成されたファイルも削除)
初期化・クリーンアップ
/checkpoint init # 手動で有効化(Gitリポジトリ外)
/checkpoint clean # セッションのシャドウリポジトリを削除
使用例
実験的な変更を試す
> ファイルを大幅に変更してください
# 変更後、うまくいかなかった場合
> /checkpoint list
[0] Initial checkpoint
[1] 大幅変更前
> /checkpoint restore 1
# 変更前の状態に戻る
複数の変更を比較
> /checkpoint list
[0] Initial
[1] 機能A追加
[2] 機能B追加
> /checkpoint diff 1 2
# 機能Aと機能Bの差分を確認
注意事項
- チェックポイントはセッション単位で管理
- 会話履歴も復元時に巻き戻される
- 実験的機能のため、変更される可能性あり
- Gitリポジトリ内では自動有効化(セッション終了時に自動クリーンアップ)
関連設定
q settings chat.enableCheckpoint true # 有効化
q settings chat.enableCheckpoint false # 無効化