Skip to content

原文(日本語に翻訳)

ファイル履歴スナップショットに上限を設けることで、長いセッションでの無制限なメモリ増加を修正しました。

原文(英語)

Fixed unbounded memory growth in long sessions by capping file history snapshots

概要

Claude Codeがファイルの変更履歴を追跡するために保存するスナップショットの数が無制限に増加していた問題が修正されました。長いセッションで多数のファイルを編集し続けると、各ファイルの各バージョンのスナップショットがメモリに保持され続け、メモリ使用量が際限なく増加していました。修正後はスナップショットの数に上限が設けられ、古いスナップショットが自動的に削除されます。

基本的な使い方

この修正は自動的に適用されます。特別な設定は不要です。ファイルを頻繁に編集する長いセッションで効果が現れます。

bash
# 多数のファイルを編集する長いセッション
claude

> src/auth.ts のバグを修正して
# スナップショット1: 修正前
# スナップショット2: 修正後

> さらに改善して
# スナップショット3: 改善後

# v2.1.50以降: スナップショット数が上限に達すると古いものが削除
# メモリ使用量が安定

実践例

ユースケース1: 繰り返しコードを改善するセッション

同じファイルを何度も修正・改善するセッション。

bash
claude

# 同じファイルを繰り返し編集
> src/payment.ts の関数をリファクタリングして
> さらにパフォーマンスを改善して
> エラーハンドリングを追加して
> コメントを追加して
> 型定義を改善して
# ... 10回以上の編集 ...

# 修正前: 各編集のスナップショットがメモリに蓄積
# 修正後: スナップショット数の上限により古いものが解放

ユースケース2: 大規模リファクタリングでの多数ファイル編集

大規模なリファクタリングで数十のファイルを修正する場合。

bash
claude

# 100以上のファイルにわたるリファクタリング
> プロジェクト全体でimport文を絶対パスから相対パスに変換して
# 各ファイルで変更前後のスナップショットが保存

# v2.1.50以降: スナップショット数の上限で古いものが自動削除
# → 100ファイルの変更後もメモリが安定

ユースケース3: 長期間にわたる継続的なコード改善

数時間のセッションで継続的にコードを改善する場合。

bash
# 一日かけてコードベースを改善するセッション
claude

# 午前中の作業
> バグを修正して
> テストを追加して
> ドキュメントを更新して

# 午後の作業
> パフォーマンスを改善して
> セキュリティ診断を実施して

# 夕方の作業
> コードレビューのフィードバックを反映して
> デプロイの準備をして

# 修正前: 全スナップショットが蓄積し夕方にはメモリが圧迫
# 修正後: 上限により安定したメモリ使用量を維持

注意点

  • スナップショットの上限は自動的に設定されます。ユーザーが上限値を変更する設定は(現時点では)提供されていません。
  • 上限に達すると最も古いスナップショットから削除されます。最新の変更履歴は保持されます。
  • この変更はClaudeの操作に影響しません。Claudeがファイルの変更を提案する際の動作は変わりません。
  • undo/redo機能がある場合、古いスナップショットが削除されると影響を受ける可能性があります(実装依存)。

関連情報