Claude Code 2.1.88 リリース:レンダリング改善・バグ修正・フック強化
Claude Code 2.1.88では、フリッカーフリーなレンダリング対応や新規フックの追加に加え、Windows・macOS・長時間セッションに関する多数のバグ修正が行われました。
背景
本リリースは、実運用で報告された安定性・UX上の問題を広範囲にわたって解消することを目的としています。特にWindows環境での動作不具合、長時間セッションでのメモリ・パフォーマンス劣化、フック機構の条件マッチングの不備が重点的に対処されています。
技術的な変更
レンダリング・表示の改善
新環境変数 CLAUDE_CODE_NO_FLICKER=1 が追加され、仮想スクロールバックを使ったフリッカーフリーなオルトスクリーンレンダリングをオプトインできるようになりました。これは特にiTerm2やtmux上で顕在化していた表示ちらつきへの対応です。あわせて、以下の表示系バグも修正されています:
- tmux内のiTerm2でストリーミング中に発生していた定期的なUIジッター
- レイアウトシフト後のメインスクリーン端末でのレンダリングアーティファクト
- 長いセッションでスクロールアップした際にスクロールバックが消える問題
- 重並列ツール使用中にターミナルスクロールバックで折り畳み済みバッジが重複する問題
-
/btwの長い応答がスクロール不可能な状態でクリップされる問題(スクロール可能なビューポートで表示するよう変更)
フック機構の強化
PermissionDenied フックが新たに追加されました。オートモードの分類器による拒否の後に発火し、{retry: true} を返すことでモデルにリトライを指示できます。また、既存フックの if 条件フィルタリングにおいて、ls && git push のような複合コマンドや FOO=bar git push のような環境変数プレフィックス付きコマンドがマッチしなかった問題も修正されています。さらに PreToolUse/PostToolUse フックで Write/Edit/Read ツールの file_path が絶対パスとして提供されない問題も解消されました。
メモリ・安定性の修正
長時間セッションに関わる複数のメモリ・クラッシュ問題が修正されています:
- 大きなJSONインプットがLRUキャッシュキーとして保持されていたメモリリーク
- 1GiBを超える非常に大きなファイルをEditツールで操作した際のOOMクラッシュの可能性
- 50MBを超えるセッションファイルからメッセージを削除した際のクラッシュ
- 旧バージョンCLIのツール結果や中断された書き込みを含むトランスクリプトで
--resumeがクラッシュする問題 -
StructuredOutputスキーマキャッシュのバグによって複数スキーマを持つワークフローで約50%の失敗率が発生していた問題
長時間セッションのパフォーマンス修正
- ツールスキーマのバイト列がセッション中に変化することで生じていたプロンプトキャッシュミスを修正
- ネストされた
CLAUDE.mdファイルが多数のファイルを読む長いセッションで数十回再挿入される問題を修正 -
~/.claude/history.jsonlの4KBバウンダリにCJK文字や絵文字を含むプロンプト履歴エントリが無音で消える問題を修正 -
/statsでキャッシュフォーマット変更時に30日を超える過去データが失われる問題を修正 -
/statsでサブエージェント・フークの使用量が除外されトークン数が過少計上される問題を修正
Windows・プラットフォーム固有の修正
Windows環境での動作に関して、以下の複数の問題が対処されています:
- Edit/Writeツールが Windows で CRLF を二重化し Markdown のハードラインブレーク(末尾2スペース)を除去する問題
- Windows Terminal Preview 1.25 で Shift+Enter が改行挿入ではなくサブミットしてしまう問題
-
PowerShell ツールが Windows PowerShell 5.1 で
git pushなどがstderrに進捗を書き込む際に誤って失敗を報告する問題 - Windows で音声モードが "WebSocket upgrade rejected with HTTP 101" で失敗する問題
-
/envがBashツールのみに適用され PowerShell ツールコマンドには適用されなかった問題(PowerShellにも適用されるよう変更) - PowerShell ツールのプロンプトがバージョン適切な構文ガイダンス(5.1 vs 7+)に改善
その他のUX改善
-
@メンション タイプアヘッドの候補に名前付きサブエージェントが追加 - LSP サーバーがクラッシュ後にゾンビ状態に陥る問題を修正(セッション再起動なしに次のリクエストで再起動するよう変更)
- APIがエンタイトルメントエラーを返した際に "Rate limit reached" と誤表示する問題を修正(実際のエラーとヒントを表示するよう変更)
- タスク通知が Ctrl+B でのセッションバックグラウンド時に失われる問題を修正
- 音声モードの macOS Apple Silicon でのマイク権限要求失敗を修正
- 音声プッシュトゥトークが一部の修飾キー組み合わせで起動しない問題を修正
- 通知の
invalidatesが現在表示中の通知をすぐにクリアしない問題を修正 - サブミット後にバックグラウンドメッセージが処理中に届いた際プロンプトが一瞬消える問題を修正
- デーヴァナーガリーなどの結合文字テキストがアシスタント出力で切り詰められる問題を修正
- 画像ペースト時に末尾スペースが挿入される問題を修正
- 空プロンプトへの
!commandペーストがbashモードに入るよう変更(タイプ入力の!と挙動を統一) - インタラクティブセッションではサマリーはデフォルトで生成されなくなり、復元するには設定で
showThinkingSummaries: trueを指定 - オートモードで拒否されたコマンドが通知として表示され、
/permissionsの Recent タブにも記録されるよう変更 -
/usageでProおよびEnterprise プランでは冗長な "Current week (Sonnet only)" バーを非表示に - 折り畳まれたツールサマリーで ls/tree/du の表示が "Read N files" ではなく "Listed N directories" に変更
まとめ
Claude Code 2.1.88は、新機能の追加よりも安定性とUXの底上げに重点を置いたリリースです。長時間セッションでのメモリ問題、Windows環境での複数の不具合、フック条件マッチングの欠陥といった実運用上の問題が一括して修正されており、日常的な利用の信頼性が大きく向上しています。