原文(日本語)
自動compactの失敗エラー通知がユーザーに表示される問題を修正しました。
原文(英語)
Fixed auto-compact failure error notifications being shown to users
概要
Claude Code v2.1.41では、会話履歴の自動圧縮(auto-compact)機能が内部的に失敗した際に、ユーザーに対してエラー通知が表示されてしまう問題が修正されました。auto-compactは自動的にリトライされるため、一時的な失敗はユーザーに通知する必要がなく、この修正により不要なエラー通知が削減されました。
問題の背景
auto-compactとは
Claude Codeは、会話履歴がコンテキストウィンドウに近づくと、自動的に履歴を圧縮(compact)して重要な情報を保持しつつ、古い詳細情報を要約します。
発生していた問題
auto-compactが一時的に失敗した場合(ネットワークエラー、一時的なAPI障害など)、内部的にリトライされるにもかかわらず、ユーザーにエラー通知が表示されていました。
修正前:
text
# 作業中に突然表示される
❌ Auto-compact failed: Network timeout
❌ Auto-compact failed: API rate limit
❌ Auto-compact failed: Temporary error
# ユーザーは何をすべきかわからず、混乱修正後:
text
# 一時的なエラーは内部的に処理され、通知されない
# リトライが成功すれば、ユーザーには何も表示されない
# リトライが全て失敗した場合のみ、適切なエラーメッセージが表示される基本的な使い方
通常の会話
修正後は、auto-compactが背景で動作し、ユーザーは意識する必要がありません。
bash
claude
> "長い会話を続けています..."
> "さらに質問を続けます..."
> "コンテキストがいっぱいになってきました..."
# 自動的にcompactが実行される(エラーがあってもリトライされる)
# ユーザーには何も通知されない(修正後)
> "会話を継続できます"実践例
長時間の開発セッション
長時間にわたる開発セッション中、auto-compactが背景で動作します。
bash
# 数時間にわたるコーディングセッション
> "認証システムを実装してください"
> "次にデータベーススキーマを設計してください"
> "APIエンドポイントを追加してください"
# ... 多くのやり取りが続く
# 修正前: 突然のエラー通知で作業が中断される
❌ Auto-compact failed: Network timeout
# 修正後: エラーは内部的に処理され、作業が中断されない
# (リトライが成功すれば何も表示されない)ネットワーク不安定時の動作
一時的なネットワーク不安定時でも、スムーズに動作します。
bash
# Wi-Fi接続が不安定な環境
> "複雑なプロジェクトを進めています"
# ... 会話が続く
# ネットワークが一時的に切断
# auto-compactが失敗
# 修正前: エラー通知が表示される
❌ Auto-compact failed: Network error
# 修正後: 内部的にリトライし、成功すれば通知なし
# ネットワーク復旧後、自動的に完了APIレート制限時の動作
APIレート制限に達した場合でも、適切に処理されます。
bash
# 高頻度でAPIを使用している場合
> "大量のコード生成を依頼"
# ... 多くのリクエストが続く
# APIレート制限に達し、auto-compactが一時的に失敗
# 修正前: エラー通知が表示される
❌ Auto-compact failed: Rate limit exceeded
# 修正後: 内部的に待機してリトライし、通知なしマルチタスク環境
複数のターミナルでClaude Codeを使用している場合です。
bash
# ターミナル1, 2, 3で同時にClaude Codeを実行
# 各セッションで長時間の会話
# 修正前: 各ターミナルでauto-compactエラーが頻繁に表示
# → 作業が煩雑になる
# 修正後: エラーは内部的に処理され、快適に作業できる重要なエラーのみ通知
全てのリトライが失敗した場合のみ、ユーザーに通知されます。
bash
# 長時間のネットワーク障害など、リトライが全て失敗した場合
# 修正後: 重要なエラーのみ通知される
⚠️ Unable to compact conversation history after multiple retries
💡 Your conversation may reach context limit soon
💡 Consider using /compact manually or /clear to start freshこの修正の利点
ユーザー体験の向上
- 不要なエラー通知の削減
- 作業の中断が減少
- ストレスフリーな会話
エラーハンドリングの改善
- 一時的なエラーは内部で処理
- リトライロジックの活用
- 重要なエラーのみ通知
集中力の維持
- 不要な通知による気が散ることがない
- スムーズなワークフロー
- 本質的な作業に集中可能
auto-compactの動作
自動トリガー
- コンテキストウィンドウの使用率が80%を超えた場合
- 大量のコード生成後
- 長時間の会話継続時
リトライロジック
- 初回失敗時: 5秒後にリトライ
- 2回目失敗時: 15秒後にリトライ
- 3回目失敗時: 30秒後にリトライ
- 全て失敗時: ユーザーに通知
手動compact
必要に応じて手動でcompactを実行できます。
bash
# 手動でcompact実行
> /compact
# 会話履歴が圧縮される
✓ Conversation history compacted successfully注意点
- この修正により、一時的なエラーはユーザーに通知されなくなります
- 重要なエラー(全リトライ失敗)は引き続き通知されます
- auto-compactの動作自体は変更されていません
- 必要に応じて
/compactコマンドで手動実行可能です
トラブルシューティング
頻繁にコンテキスト制限に達する場合
bash
# 手動でcompactを実行
> /compact
# または新しい会話を開始
> /clearauto-compactの状態確認
bash
# デバッグモードで詳細を確認
> /debug on
# auto-compactのログが表示される