Claude Code 2.1.88 リリース:レンダリング改善・バグ修正・フック強化

anthropics/claude-code

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環境での複数の不具合、フック条件マッチングの欠陥といった実運用上の問題が一括して修正されており、日常的な利用の信頼性が大きく向上しています。

記事メタデータ

Generated by:
Claude Sonnet 4.6 for DiffDaily
LLM Trace:
55da0338

この記事はAIによって自動生成されています。内容の正確性については、必ずソースコードやPRを確認してください。

品質レビュー結果

Review Status:
承認済み
Review Count:
1回
Reviewed by:
Gemini 2.5 Pro for DiffDaily

Review Criteria:

記事構成 ✓ PASS

Title, Context, Technical Detailの存在と明確さ

「リード文(総論)→背景・技術詳細(各論)→まとめ(結論)」という構成が明確であり、ガイドラインに完全に準拠しています。特に、多数の箇条書きを「レンダリング」「フック機構」など意味のあるカテゴリに再分類している点が秀逸です。

カスタムMarkdown構文 ⚠ WARNING

シンタックスハイライト・GitHubリンク記法の正確性

全体的に適切ですが、記事末尾のPrimary SourceリンクでコミットIDに不要な「#」が付与されています。ただし、リンク自体は正しく機能しており、内容理解への影響は軽微です。

対象読者への適合性 ✓ PASS

エンジニア向けの適切な技術レベルと表現

「LRUキャッシュ」「LSPサーバー」「CRLF」といった専門用語を前提として使用しており、専門知識を持つエンジニアという対象読者に完全に適合しています。

パラグラフ・ライティング ✓ PASS

トピックセンテンス・1段落1トピック・段落長

各セクション、各パラグラフが「総論→各論」の構造で書かれており、トピックセンテンスが明確です。箇条書きが効果的に使われており、可読性が非常に高いです。

Diff内容との照合 ✓ PASS

コードブロックとDiff内容の一致

記事内で言及されている環境変数(CLAUDE_CODE_NO_FLICKER=1)、フック名(PermissionDenied)、コマンド(/btw)などは、すべて提供されたCHANGELOGのDiff内容と正確に一致しています。

技術用語の正確性 ✓ PASS

技術用語の正確な使用

「オルトスクリーンレンダリング」「デーヴァナーガリー」「PowerShell」など、CHANGELOGに出てくる技術用語を正確かつ適切な文脈で使用しています。

説明の技術的正確性 ✓ PASS

技術的主張の正確性と論理性

「PermissionDeniedフックはオートモードの拒否後に発火し、リトライを指示できる」といった説明は、CHANGELOGの内容を正確に反映しており、技術的な誤りはありません。

事実の突合 ✓ PASS

PR情報による主張の裏付け(ハルシネーション検出)

記事のすべての主張は、PRのDiffとして提供されたCHANGELOGの内容に完全に基づいています。根拠のない推測や創作(ハルシネーション)は一切見られません。

数値・固有名詞の確認 ⚠ WARNING

PR番号・コミットID・バージョン等の正確性

バージョン番号「2.1.88」やその他の数値(50MB、1GiBなど)は正確ですが、コミットIDの表示「#66ab4ae」に不要な記号が含まれています。

タイトル・説明との一致 ✓ PASS

記事タイトル・説明とPR内容の一致

記事のタイトル「Claude Code 2.1.88 リリース:レンダリング改善・バグ修正・フック強化」は、PRの内容(CHANGELOG更新)の要点を的確に表現しています。

外部知識の正確性 ✓ PASS

PRに記載のない外部知識(LTS、サポート状況など)の不使用

LTSやEOL、リリース日程といった、PR情報に記載のない外部知識の追加はありません。記事は提供された情報源に忠実です。

時間表現の正確性 ✓ PASS

時間表現がPR情報と一致しているか

「〜が行われました」「〜が修正されています」といった表現は、リリースノートの内容をまとめる上で適切であり、PR情報との時間的な矛盾はありません。