原文(日本語に翻訳)
/cd でセッションを別のディレクトリに移動させた後、古いディレクトリのパスに特殊文字が含まれている場合、非正常終了後にそのセッションが古いディレクトリの再開リストに再度表示されてしまう問題を修正
原文(英語)
Fixed sessions moved with /cd reappearing in the old directory's resume list after a non-graceful exit when the old path contained special characters
概要
/cd コマンドでセッションを別のディレクトリに移動させると、通常はセッションが新しいディレクトリに再配置され、古いディレクトリの claude --resume のセッション一覧からは除外されます。しかし、セッション終了が非正常(クラッシュや強制終了など)であり、かつ古いディレクトリパスにスペースや括弧、Unicode文字などの特殊文字が含まれていた場合、内部的なパスの照合に失敗し、セッションが古いディレクトリの一覧に再度表示されてしまうバグがありました。v2.1.196でこの不具合が修正され、非正常終了後もセッションは確実に古いディレクトリの一覧から除外されたままになります。
基本的な使い方
bash
# セッション内から別のディレクトリに移動
/cd /path/to/new/project
# セッション一覧(resume picker)で確認
claude --resume
# 移動したセッションは新しいディレクトリのグループに表示されるセッション移動後に通常どおり終了(/exit や Ctrl+D)した場合は、新しいディレクトリに正しく配置されます。
実践例
特殊文字を含むディレクトリパスでの /cd 使用
bash
# 特殊文字(スペース)を含むパスでセッションを開始
cd "/old/project dir (legacy)"
claude
# セッション内から新しいディレクトリへ移動
/cd /new/project/path
# この状態でセッションが非正常終了(Ctrl+Cでの強制終了など)した場合
# 修正前: 古いディレクトリ "/old/project dir (legacy)" の resume 一覧に
# セッションが再度表示されてしまっていた
# 修正後: 古いディレクトリの一覧には表示されず、
# 新しいディレクトリの一覧にのみ表示される修正前後の挙動比較
セッション初期状態
├── ディレクトリ: "/old/project (v1)"
└── セッションID: abc123
操作手順
1. /cd /new/project/path → セッションが新しいディレクトリに移動
2. セッションが非正常終了 → Ctrl+C やクラッシュなど
【修正前】
/old/project (v1) の resume 一覧
└── abc123 が再度表示される(バグ)
/new/project/path の resume 一覧
└── abc123 が表示される
【修正後】
/old/project (v1) の resume 一覧
└── abc123 は表示されない(正常)
/new/project/path の resume 一覧
└── abc123 が表示されるclaude --resume でのセッション一覧確認
bash
# 新しいディレクトリからセッションを再開
cd /new/project/path
claude --resume
# セッションピッカーで、移動したセッションが
# 新しいディレクトリのグループ配下にのみ表示されることを確認する注意点
- 問題が顕在化しやすかった特殊文字の例: スペースを含むパス、括弧
()、日本語などのUnicode文字を含むディレクトリ名 - 「非正常終了」とは、Ctrl+Cによる強制終了やクラッシュ、シグナルによる停止などを指します。
/exitや Ctrl+D による通常終了では発生しません - v2.1.196より前のバージョンを使用していた場合、古いディレクトリのセッション一覧に重複表示が残っている可能性があります。アップデート後に新しいディレクトリから
claude --resumeで再開することを推奨します - セッションデータ自体は破損しておらず、表示上の不具合であるため、データ消失の心配はありません