Skip to content

原文(日本語訳)

VSCode: 過去の会話リスト読み込み時にスピナーを追加しました

原文(英語)

VSCode: Added spinner when loading past conversations list

概要

VS Code 版 Claude Code において、過去の会話履歴リストを読み込む際にスピナー(読み込みインジケータ)が表示されるようになりました。これにより、特に多数の会話履歴がある場合のユーザー体験が向上し、読み込み中であることが明確になります。

背景:読み込みフィードバックの重要性

v2.1.31 以前の問題:

問題:
- 会話履歴リストを開いても何も表示されない
- 読み込み中かフリーズしているか判別できない
- 多数の会話がある場合、数秒間何も反応がない

ユーザーの困惑:
「動いているの?」
「クリックが効いていない?」
「もう一度クリックすべき?」

v2.1.32 以降の改善:

改善:
✓ スピナーが表示され、読み込み中であることが明確
✓ 進行状況のフィードバックがある
✓ ユーザーは安心して待てる

基本的な使い方

会話履歴リストを開く

VS Code で Claude Code パネルを開く

パネル上部のドロップダウンをクリック

スピナーが表示される(読み込み中)

会話リストが表示される

または、コマンドパレットから:

Cmd+Shift+P (macOS) / Ctrl+Shift+P (Windows/Linux)
> Claude Code: Show Past Conversations

スピナー表示

会話リスト表示

実践例

少数の会話履歴

会話数: 10-20 件程度
読み込み時間: < 1 秒
スピナー表示: ほぼ瞬時に会話リストが表示される

中程度の会話履歴

会話数: 50-100 件程度
読み込み時間: 1-3 秒
スピナー表示: 明確に表示され、進行状況がわかる

UI 表示例:
┌─────────────────────────────────┐
│ Past Conversations              │
├─────────────────────────────────┤
│   🔄 Loading conversations...   │
│                                 │
└─────────────────────────────────┘

多数の会話履歴

会話数: 200+ 件
読み込み時間: 3-10 秒
スピナー表示: 継続的に表示、ユーザーは待機中を認識

以前の問題(v2.1.31):
- 無反応に見える
- ユーザーがフリーズと勘違い
- 複数回クリックして状況悪化

v2.1.32 の改善:
✓ スピナーで読み込み中を明示
✓ ユーザーは安心して待機
✓ 不要な操作を防止

スピナーの表示シーン

初回起動時

VS Code を開く

Claude Code 拡張機能を初めて使用

会話履歴を開く

スピナー表示「Indexing conversations...」

リモート会話の同期

OAuth 認証済みユーザー:
- claude.ai の会話履歴も取得
- ローカルとリモートの会話を統合
- スピナー表示「Syncing remote conversations...」

フィルタリング時

会話リスト内で検索:
1. 検索ボックスにキーワード入力
2. スピナー表示(フィルタリング中)
3. 結果表示

例:
検索: "API implementation"
↓ スピナー表示
結果: 15 件の会話がマッチ

UI の詳細

スピナーの種類

状態によって異なるメッセージ:

1. 初期読み込み:
   🔄 "Loading conversations..."

2. リモート同期:
   🔄 "Syncing with claude.ai..."

3. インデックス作成:
   🔄 "Indexing conversation history..."

4. フィルタリング:
   🔄 "Searching conversations..."

読み込み完了後の表示

┌─────────────────────────────────────┐
│ Past Conversations           🔍     │
├─────────────────────────────────────┤
│ Today                               │
│ ├─ Fix authentication bug    10:30  │
│ └─ Add new dashboard feature 09:15  │
│                                     │
│ Yesterday                           │
│ ├─ Database migration        16:45  │
│ └─ Code review session       14:20  │
│                                     │
│ Last 7 days                         │
│ ├─ Refactor user service     Feb 4  │
│ ├─ Update dependencies       Feb 3  │
│ └─ Design system improvements Feb 2 │
└─────────────────────────────────────┘

パフォーマンス最適化

段階的読み込み

最適化戦略:
1. 最近の会話を優先的に読み込み(最初の 20 件)
2. スピナー表示中にバックグラウンドで残りを読み込み
3. スクロール時に追加の会話を遅延読み込み

キャッシュの活用

2 回目以降の表示:
- 既にキャッシュされた会話は即座に表示
- 新しい会話のみスピナーで読み込み
- より高速な体験

関連する改善履歴

v2.1.32 での関連改善:

✓ スピナーアニメーションの追加
✓ 読み込み状態の明確化
✓ ユーザーフィードバックの向上

過去のバージョンでの関連改善:

v2.1.31: セッションリジューム時の読み込みインジケータ追加
v2.1.14: 読み込みインジケータの改善
v2.0.72: 会話履歴へのローディング表示追加

注意点

  • 初回起動時: 多数の会話がある場合、初回のインデックス作成に時間がかかることがあります
  • ネットワーク接続: OAuth ユーザーの場合、リモート会話の同期には安定したネットワーク接続が必要です
  • VS Code のパフォーマンス: VS Code 自体が重い場合、スピナー表示も遅延する可能性があります
  • 拡張機能の競合: 他の拡張機能との競合により、表示が遅れることがあります
  • タイムアウト: 非常に長時間読み込まれない場合はエラーメッセージが表示されます
  • キャンセル: Esc キーで読み込みをキャンセルできます

トラブルシューティング

スピナーが永続的に表示される

症状: スピナーが消えず、会話リストが表示されない

原因と対処:
1. 会話履歴ファイルの破損
   → ~/.claude/sessions/ の内容を確認

2. VS Code の問題
   → VS Code を再起動

3. 拡張機能のバグ
   → 拡張機能を再インストール

会話履歴が表示されない

bash
# ログファイルを確認
cat ~/.claude/logs/latest.log | grep -i "conversation"

# セッションディレクトリを確認
ls -la ~/.claude/sessions/

# VS Code 開発者ツールでエラーを確認
# Help > Toggle Developer Tools
# Console タブでエラーメッセージを確認

読み込みが遅い場合

対処方法:

1. 古い会話を削除:
   ~/.claude/sessions/ から不要なファイルを削除

2. インデックスを再構築:
   VS Code を再起動

3. キャッシュをクリア:
   Cmd+Shift+P > Developer: Reload Window

4. 会話数を確認:
   ls ~/.claude/sessions/ | wc -l
   # 200+ の場合は整理を検討

リモート会話が同期されない

OAuth 認証の確認:

1. ログイン状態を確認
   Cmd+Shift+P > Claude Code: Login

2. ネットワーク接続を確認
   curl -I https://api.anthropic.com

3. トークンを更新
   Cmd+Shift+P > Claude Code: Logout
   再度ログイン

VS Code 固有の設定

スピナーの無効化(非推奨)

json
// settings.json
{
  "claudeCode.showLoadingSpinner": true,  // デフォルト
  "claudeCode.conversationListPageSize": 20,
  "claudeCode.enableIncrementalLoading": true
}

読み込みタイムアウトの調整

json
// settings.json
{
  "claudeCode.conversationLoadTimeout": 30000,  // ミリ秒
  "claudeCode.enableConversationCache": true
}

パフォーマンス測定

javascript
// 開発者コンソールでパフォーマンスを測定
performance.mark('conversation-load-start');
// 会話リストを開く
performance.mark('conversation-load-end');
performance.measure(
  'conversation-load',
  'conversation-load-start',
  'conversation-load-end'
);
console.log(performance.getEntriesByName('conversation-load'));

関連情報