Claude Code 2.1.88 リリース:多数のバグ修正と機能改善

anthropics/claude-code

Claude Code 2.1.88では、フリッカーフリーレンダリングや新しいフック機能の追加に加え、Windows環境・音声モード・長期セッションにまたがる広範なバグ修正が行われました。

背景

本リリースは単一の機能追加ではなく、実運用で発見された問題の修正を中心とした改善リリースです。修正対象は長期セッションでのメモリ管理、Windows環境の互換性、フック機能の動作精度、UIのレンダリング品質など多岐にわたります。変更の広さから、日常的にClaude Codeを使用するエンジニアが遭遇しやすい問題が優先的に対処されていることが読み取れます。

技術的な変更

新機能

本バージョンでは3つの新機能が追加されました。

CLAUDE_CODE_NO_FLICKER=1 環境変数を設定することで、仮想スクロールバックを使用したフリッカーフリーのオルタネートスクリーンレンダリングをオプトインできます。これはtmuxやiTerm2など複数のターミナルエミュレータで発生していた描画ちらつきへの対処です。

PermissionDeniedフックが新たに追加されました。オートモードのクラシファイアが拒否した後に発火し、{retry: true} を返すことでモデルにリトライを指示できます。これにより、自動拒否の後処理をプログラマブルに制御できるようになります。

@ メンションの候補補完に名前付きサブエージェントが表示されるようになりました。

長期セッションの安定性改善

長期セッションで蓄積する問題が複数修正されました。ツールスキーマのバイト数がセッション中に変化することでプロンプトキャッシュがミスしていた問題が解消されます。また、多数のファイルを読み込む長期セッションで CLAUDE.md が数十回再インジェクトされていたバグも修正されています。

メモリ管理面では、大きなJSONインプットがLRUキャッシュのキーとして保持され続けるメモリリークが修正されました。さらに、Editツールを1GiB超のファイルに使用した際のOOMクラッシュ、50MB超のセッションファイルからのメッセージ削除時のクラッシュも修正されています。

Windows環境の修正

Windows固有の問題が集中的に修正されています。

  • Edit/WriteツールがWindowsでCRLFを二重にしたり、Markdownのハードラインブレーク(末尾スペース2つ)を除去する問題
  • PowerShellツールgit pushなどのコマンドでstderrに進捗を書き込む際に誤って失敗と報告する問題(Windows PowerShell 5.1)
  • Windows Terminal Preview 1.25でShift+Enterが改行挿入ではなくサブミットとして扱われる問題
  • 音声モードでWebSocketアップグレードが「HTTP 101」で拒否される問題

また、PowerShellツールのプロンプトがバージョン(5.1 vs 7+)に応じた適切な構文ガイダンスを提供するよう改善されました。

フック機能の精度向上

フックの if 条件フィルタリングが、ls && git push のような複合コマンドや FOO=bar git push のような環境変数プレフィックス付きコマンドにマッチしない問題が修正されました。また、Write/Edit/Readツールに対してPreToolUse/PostToolUseフックが file_path を絶対パスとして提供するよう修正されています。

UIとレンダリングの修正

ターミナルUIに関連する修正も多く含まれます。長期セッションでのスクロールバック消失、並列ツール使用時のバッジ重複表示、/btw の長いレスポンスがスクロール不可でクリップされる問題、デーヴァナーガリーや結合文字テキストのトランケートなどが修正されました。

/stats コマンドでは、30日を超える履歴データがキャッシュフォーマット変更時に失われる問題と、サブエージェント/フォークの使用量が集計から除外されトークン数が少なく表示される問題が修正されています。

その他の動作変更

Thinkingサマリーはインタラクティブセッションでデフォルト非生成になりました。以前の動作に戻すにはsettingsで showThinkingSummaries: true を設定する必要があります。/env 設定がPowerShellツールのコマンドにも適用されるようになり(従来はBashのみ)、CJK・絵文字を含むプロンプト履歴エントリが ~/.claude/history.jsonl の4KBバウンダリ上に位置する際にサイレントに削除されていた問題も修正されました。

設計判断

フリッカーフリーレンダリングをオプトイン方式にした点は注目に値します。仮想スクロールバックを用いた新しいレンダリング方式は全環境で安全と確認されていないため、CLAUDE_CODE_NO_FLICKER=1 という明示的なオプトインを要求することで、デフォルトの動作を変えずに段階的な展開を可能にしています。

PermissionDenied フックの設計においては、{retry: true} を返すというシンプルなインターフェースを採用することで、既存のフックシステムと一貫したパターンを維持しています。フック機構の拡張点として自動拒否への介入を可能にしつつ、インターフェースの複雑さを最小限に抑えた判断です。

まとめ

Claude Code 2.1.88は、新機能の追加よりも実用品質の向上に重点を置いたリリースです。特にWindows環境・長期セッション・フック機能の信頼性向上は、エンタープライズ環境での実用的な利用を支える改善として重要な意味を持ちます。

記事メタデータ

Generated by:
Claude Sonnet 4.6 for DiffDaily
LLM Trace:
4255afab

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

品質レビュー結果

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

Review Criteria:

記事構成 ✓ PASS

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

リード文(総論)→背景・技術詳細(各論)→まとめ(結論)の3部構成が明確に適用されています。「設計判断」セクションも含まれており、記事に深みを与えています。

カスタムMarkdown構文 ✓ PASS

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

コミットIDの短縮形リンクが正しく使用されています。ファイル名付きのコードブロックはありませんが、使用されている構文に誤りはありません。

対象読者への適合性 ✓ PASS

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

「フック機能」「LRUキャッシュ」「WebSocket」などの専門用語が適切に使用されており、対象読者であるエンジニアに適した技術レベルで書かれています。

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

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

各セクション内の構成が論理的であり、ほとんどの段落がトピックセンテンスで始まっています。1段落1トピックの原則と適切な段落長が守られており、非常に読みやすいです。

Diff内容との照合 ✓ PASS

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

記事で言及されている新機能、バグ修正、設定変更は、すべて提供されたCHANGELOGのDiff内容と正確に一致しています。引用されている数値や固有名詞も正確です。

技術用語の正確性 ✓ PASS

技術用語の正確な使用

CHANGELOGで使われている技術用語を正確に引用し、文脈に沿って適切に使用しています。誤用は見られません。

説明の技術的正確性 ✓ PASS

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

CHANGELOGの変更点リストを基に、技術的な背景や影響を論理的に説明しています。例えば、ツールスキーマの変化がキャッシュミスを引き起こすといった因果関係の説明は正確です。

事実の突合 ✓ PASS

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

記事の主張はすべてPR情報(CHANGELOG)で裏付けられています。「設計判断」のセクションは推論を含みますが、CHANGELOGの事実(オプトイン方式であること)に基づく妥当な解説であり、ハルシネーションではありません。

数値・固有名詞の確認 ✓ PASS

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

バージョン番号「2.1.88」、コミットID「2d5c1ba」、ファイルサイズ(1GiB, 50MB)など、記事内のすべての数値・固有名詞はPR情報と正確に一致しています。

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

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

PRのタイトルは「chore: Update CHANGELOG.md」ですが、記事のタイトルはPRの「内容」であるリリース内容を的確に要約しており、読者にとってより有益なタイトルになっています。

外部知識の正確性 ✓ PASS

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

PR情報に基づかないバージョンサポート状況やリリース日程などの外部知識の捏造は見られません。記事の内容は提供された情報に忠実です。

時間表現の正確性 ✓ PASS

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

「以前の動作に戻すには」「従来はBashのみ」といった時間表現は、CHANGELOG内の「restore」「previously」といった記述と正確に一致しており、歪曲はありません。