Skip to content

原文(日本語に翻訳)

メッセージレンダリングのバグを修正

原文(英語)

Fixed message rendering bug

概要

Claude Code v2.1.12 では、セッション再開時にメッセージが正しくない順序で表示される不具合が修正されました。この問題は、PostToolUseフックを使用している場合に、タイムスタンプのレースコンディションにより、古いツール呼び出しの結果が画面の最下部に固定され、新しいメッセージがその上に表示されてしまうというものでした。v2.1.9でリグレッションとして発生していた問題が、このバージョンで解決されています。

基本的な使い方

この修正は自動的に適用されるため、ユーザー側で特別な操作は不要です。セッションを再開する際の標準的な手順をそのまま使用できます。

bash
# セッションの再開
claude --resume

# または特定のセッションIDを指定して再開
claude --resume <session-id>

実践例

PostToolUseフックを使用したセッションの再開

修正前の問題(v2.1.9):

  1. PostToolUseフックを設定した状態でセッションを開始
  2. ツール呼び出しを含む作業を実行
  3. セッションを終了
  4. claude --resume でセッションを再開
  5. 問題: 古いツール呼び出しが画面下部に固定され、新しいメッセージが常にその上に表示される
[新しいユーザーメッセージ]
[新しいアシスタント応答]
─────────────────────────
[古いツール呼び出し結果] ← ここに固定されたまま

修正後の動作(v2.1.12以降):

セッションを再開しても、メッセージは正しい時系列順に表示されます。

[古いツール呼び出し結果]
[新しいユーザーメッセージ]
[新しいアシスタント応答]

フックを使用した開発ワークフロー

settings.jsonでPostToolUseフックを設定している場合でも、安心してセッション再開機能を使用できます。

json
{
  "hooks": {
    "postToolUse": {
      "command": "echo 'Tool execution completed'",
      "enabled": true
    }
  }
}

長時間セッションの管理

複数日にわたる開発作業で、頻繁にセッションを再開する場合でも、メッセージ履歴が正しい順序で表示されます。

bash
# 1日目: 作業開始
claude

# 2日目: 前日の作業を再開
claude --resume

# 履歴が正しい順序で表示され、作業の文脈を理解しやすい

注意点

  • この修正は Claude Code v2.1.12 で適用されました
  • v2.1.9 でリグレッションとして発生していた問題の修正です
  • PostToolUseフックを使用している場合に特に効果的な修正です
  • この不具合は、フックがI/O処理を伴う場合により顕著に発生していました
  • 既存のセッションを再開する際に、自動的に正しい順序でメッセージが表示されます

関連情報