原文(日本語に翻訳)
長時間セッションにおいて、シェルコマンド完了後にストリームリソースがクリーンアップされないメモリリークを修正
原文(英語)
Fixed memory leak in long-running sessions where stream resources were not cleaned up after shell commands completed
概要
Claude Code v2.1.14では、シェルコマンド実行後のストリームリソース管理に関するメモリリークが修正されました。以前のバージョンでは、Bashコマンドを実行するたびにストリーム(標準出力、標準エラー出力など)のリソースが適切に解放されず、長時間のセッションでメモリ使用量が徐々に増加していました。この修正により、コマンド実行後にリソースが確実にクリーンアップされ、長時間セッションでも安定して動作するようになりました。
影響を受けていた動作
修正前(バグあり)
- Bashコマンドを実行するたびにメモリが少しずつリーク
- 長時間セッション(数時間〜1日)でメモリ使用量が数GB に到達
- 最終的にシステムメモリ不足やクラッシュが発生
- 特に以下のような使い方で顕著:
- 頻繁にコマンドを実行する開発フロー
- CI/CD環境での長時間実行
- 大量のログ出力を伴うコマンド
修正後(v2.1.14以降)
- コマンド完了時にストリームリソースが適切に解放
- 長時間セッションでもメモリ使用量が安定
- 数日間の連続使用でも問題なし
- パフォーマンスの劣化がない
実践例
長時間の開発セッション
一日中Claude Codeを使い続ける場合でも安定:
bash
# 朝から晩まで何百回もコマンド実行
! npm test
! npm run build
! git status
! docker ps
# ... 数時間後も安定動作修正前は数時間でメモリが肥大化しましたが、修正後は安定して動作します。
CI/CD環境での長時間実行
GitHub Actionsなどで長時間ジョブを実行:
yaml
# 数十分〜数時間かかるビルド&テストジョブ
- run: |
claude -p "Run full test suite"
claude -p "Generate coverage reports"
claude -p "Build production artifacts"
claude -p "Run integration tests"修正前はメモリリークでジョブが失敗することがありましたが、修正後は安定して完了します。
ログ監視タスク
大量のログ出力を伴うコマンドでも安定:
bash
# 大量のログを出力するコマンド
! npm run test:verbose
! docker logs mycontainer --tail 10000
! git log --all --graph --decorate修正前はストリームバッファがリークしましたが、修正後は適切にクリーンアップされます。
バックグラウンドタスクとの組み合わせ
バックグラウンドで複数のコマンドを実行:
bash
# 複数のウォッチャーをバックグラウンド起動
! npm run watch &
! npm run dev-server &
! npm run test:watch &
# メインの作業を継続
"アプリケーションに新機能を追加してください"修正前は各バックグラウンドタスクのストリームがリークしましたが、修正後は適切に管理されます。
注意点
- ストリームとは:コマンドの標準出力(stdout)、標準エラー出力(stderr)など、データの入出力に使用されるリソース
- メモリリークの症状:徐々にメモリ使用量が増加し、最終的にクラッシュする現象
- 長時間セッション推奨:修正後は長時間セッションでも安定しますが、定期的に
/clearでセッションをリセットすることも良い習慣です - リソース監視:
htopやActivity Monitorなどでメモリ使用量を監視できます - 他のメモリリーク:この修正はストリームリソースに関するものです。他の原因によるメモリ増加がある場合は別途報告してください
- バックグラウンドタスク:バックグラウンドタスクのストリームも適切にクリーンアップされます