原文(日本語に翻訳)
display:none によってノードが非表示になった際に ink2 モードで視覚的なアーティファクトが発生する問題を修正
原文(英語)
Fixed visual artifacts in ink2 mode when nodes become hidden via display:none
概要
Claude Code v2.1.6 では、ink2 レンダリングエンジンの表示問題が修正されました。以前のバージョンでは、UI コンポーネントが display:none で非表示にされた際に、画面上に視覚的なゴミ(アーティファクト)が残ってしまう問題がありました。この修正により、要素の表示/非表示が正確に処理され、クリーンな UI が維持されるようになりました。
基本的な使い方
この修正は自動的に適用され、ユーザー側での設定変更は不要です。
正常な UI レンダリング:
- Claude Code の UI 要素が動的に表示/非表示される
- 非表示になった要素は完全に消える
- 画面上に視覚的なゴミが残らない
実践例
修正前の問題(v2.1.5以前)
UI 要素が非表示になった後も視覚的なゴミが残る:
┌─────────────────────────────────┐
│ Claude Code │
├─────────────────────────────────┤
│ > How can I help you? │
│ │
│ [Loading indicator...] │ ← 本来は非表示
│ ████████ │ ← 視覚的なゴミ
│ ░░░░░░░░ │ ← アーティファクト
│ │
│ Type your message... │
└─────────────────────────────────┘
# ローディングが終わってもゴミが残る特に以下の場合に顕著:
- プログレスバーやスピナーの非表示後
- モーダルダイアログを閉じた後
- 通知メッセージが消えた後
- ポップアップメニューを閉じた後
修正後の動作(v2.1.6以降)
v2.1.6 では、要素が完全に消えてクリーンな表示:
┌─────────────────────────────────┐
│ Claude Code │
├─────────────────────────────────┤
│ > How can I help you? │
│ │
│ │ ← クリーン
│ │ ← アーティファクトなし
│ │
│ │
│ Type your message... │
└─────────────────────────────────┘
# 非表示要素は完全に消えるローディングインジケーターの表示/非表示
コマンド実行時のローディング表示:
bash
# コマンドを実行
/doctor
# ローディング中
[●●●○○○] Checking system...
# v2.1.5 以前: ローディングが終わっても
# [○○○○○○] ← ゴミが残る
# v2.1.6 以降: 完全に消える
# (クリーンな画面)モーダルダイアログの表示
設定ダイアログの表示/非表示:
bash
# /config を実行
╔════════════════════════════╗
║ Configuration ║
║ ║
║ Model: claude-sonnet-4 ║
║ Theme: dark ║
║ ║
║ [Save] [Cancel] ║
╚════════════════════════════╝
# Esc を押してダイアログを閉じる
# v2.1.5 以前:
# ╚════════ ← 枠線の一部が残る
# v2.1.6 以降:
# (完全にクリーン)通知メッセージの自動消去
一時的な通知メッセージ:
# ファイル保存時
┌─────────────────────────┐
│ ✓ File saved │
└─────────────────────────┘
# 3秒後に自動的に消える
# v2.1.5 以前:
# └───── ← 一部が残る
# v2.1.6 以降:
# (完全に消える)プログレスバーの更新
ファイル処理時のプログレスバー:
# 処理中
Processing files...
[████████░░░░░░░░] 50%
# 完了時
Processing files...
[████████████████] 100%
# 処理完了後、プログレスバーが消える
# v2.1.5 以前:
# [░░░░░░░░░░░░░░░░] ← ゴミが残る
# v2.1.6 以降:
# (完全に消える)オートコンプリートメニュー
@ オートコンプリートの表示/非表示:
# @ を入力
@
┌─────────────────────┐
│ 📄 src/app.ts │
│ 📄 src/utils.ts │
│ 📁 tests/ │
└─────────────────────┘
# Esc でキャンセル
# v2.1.5 以前:
# └───── ← 枠線が残る
# v2.1.6 以降:
# (完全に消える)コンテキストメニュー
右クリックメニュー(対応している場合):
# メニュー表示
┌─────────────┐
│ Copy │
│ Paste │
│ Clear │
└─────────────┘
# クリック後
# v2.1.5 以前:
# │ ← 縦線が残る
# v2.1.6 以降:
# (クリーン)複数要素の同時非表示
複数の UI 要素が同時に消える場合:
# 複雑な UI 状態
┌─────────────────────────────────┐
│ [Notification] File saved │
│ [Progress] ████████ 80% │
│ [Dialog] Processing... │
└─────────────────────────────────┘
# 全て完了
# v2.1.5 以前:
# ████ [D ← 複数のゴミが残る
# v2.1.6 以降:
# (完全にクリーン)注意点
- この修正は Claude Code v2.1.6 で導入されました
- ink2 レンダリングエンジンを使用する環境でのみ関連します
display:noneによる要素の非表示が正しく処理されるようになりました- 視覚的なアーティファクトが完全に除去され、よりクリーンな UI になります
- 端末エミュレータによっては、画面の再描画が必要な場合があります
- この問題は主に動的に表示/非表示を切り替える UI 要素で発生していました
- 修正により、長時間使用時の画面の乱れも軽減されます