Claude Codeの/resumeが全プロジェクトを表示した不具合とv2.1.108の修正
v2.1.101で/continueと/resumeが全プロジェクトのセッションを表示する回帰が起き、v2.1.108で現在ディレクトリ既定に戻った経緯と現在の挙動を扱います。
Claude Codeの/continueと/resumeは、v2.1.101からv2.1.107までの期間、現在のプロジェクトだけでなくマシン上の全プロジェクトのセッションを一覧に表示していました。GitHub issue #46445として報告されたこの回帰は、v2.1.108で現在ディレクトリを既定に戻す形で修正されています。
一覧に別プロジェクトが混ざっていたら何が起きているか
最初の報告は2026年4月10日です。報告者はnpmのグローバルインストールで自動更新によりv2.1.101になった環境で、~/work/ganduriでセッションを始めて/continueか/resumeを開きました。すると~/work/ps40や~/work/wikiといった別プロジェクトのセッションまで、同じピッカーに並んだと記録しています。
それまでは起動したディレクトリのセッションだけに絞られていたため、動作の変化ははっきりしていました。issueにはLinux環境の報告としてhas repro(再現手順あり)とregressionのラベルが付いています。
目的のセッションを探しにくくなるだけなら、不便で済みます。厄介なのは、プロジェクトを多く抱えている人ほど、普段のプロジェクトのセッションが一覧の奥に押し出されることです。
コメント欄では、プロジェクトが10個前後ある報告者が「every one is noisy and hard to find things in」と書いています。全プロジェクト分が並ぶと、目的のセッションを探す手間が増えるという訴えです。
セッションに名前を付けておくと、混雑した一覧でも見つけやすくなります。名前の付け方はClaude Codeの/renameコマンドでセッション名を変更するにあります。
v2.1.101のchangelogにある「せまい既定表示」の修正
回帰と同じv2.1.101のchangelogには、/resumeピッカーの修正が複数載っています。その1つが「他プロジェクトのセッションを隠す、せまい既定表示(narrow default view hiding sessions from other projects)」です。この変更が既定の表示を広げたと読めます。
文面だけ読むと、プロジェクトをまたげない既定のほうが不具合に見えます。ところが報告者の期待は逆で、起動したディレクトリに絞られる挙動こそ「意図した絞り込み」でした。同じ挙動を、作る側は「隠している」と見て、使う側は「絞ってくれている」と見ていたことになります。
影響を受けたバージョンと修正までの流れ
回帰が入ったのがv2.1.101、直ったのがv2.1.108です。changelogの日付で並べると、修正までの短さがわかります。
v2.1.101からv2.1.108まで
- 4月10日v2.1.101がリリース
/resumeピッカーの「せまい既定表示」を直す変更が入ったバージョンです。同じ日にissue #46445が立ちました。 - 4月14日v2.1.108で既定が戻る
/resumeピッカーの既定が現在のディレクトリのセッションに戻り、全プロジェクトを見るにはCtrl+Aを押す形になりました。v2.1.107も同じ4月14日のリリースで、修正は一つ前の番号ではなくv2.1.108に入りました。
v2.1.100はこの回帰より前のバージョンで、issueのコメントにはここへ戻す回避策が書かれています。DISABLE_AUTOUPDATERなどで更新を止めたまま固定している環境は、回帰も修正も受け取りません。
修正までの間はCtrl+Aの役割が逆だった
現在のピッカーでは、Ctrl+Aで表示がマシン上の全プロジェクトへ広がります。v2.1.101からv2.1.107までの期間について、issueのコメントには「現在のプロジェクトに絞るために、毎回Ctrl+Aを押す必要がある」という報告があります。
Ctrl+Aが指す向き
v2.1.100以前とv2.1.108以降
Ctrl+Aで全プロジェクトへ広げます。もう一度押すと現在のリポジトリに戻ります。
v2.1.101〜v2.1.107
最初から全プロジェクトが並んでいるので、広げる操作の出番がなく、同じキーは絞り込む向きに働いたと考えられます。
現在の/continueと/resumeはどこまでを見せるか
REPL内では/continueは/resumeのエイリアスで、同じセッションピッカーを開きます。ターミナルから起動するときは--continueと--resumeが別物です。v2.1.289のclaude --helpでは、関連する4つの項目は次のように出力されました。
$ claude --help
-c, --continue Continue the most recent conversation in the current directory
-r, --resume [value]
Resume a conversation by session ID, or open interactive
picker with optional search term
--fork-session When resuming, create a new session ID instead of reusing
the original (use with --resume or --continue)
-n, --name <name> Set a display name for this session (shown in the prompt box,
/resume picker, and terminal title)--continueは現在のディレクトリの直近のセッションを開き、ピッカーを経由しません。--from-pr <number>は、そのプルリクエストに紐づくセッションだけに絞ったピッカーを開きます。--resumeは引数なしならピッカー、セッションIDか名前を渡せばそのセッションを直接開きます。--fork-sessionを添えると、元のIDを使い回さず新しいセッションIDの複製として再開するので、元の履歴を残したまま別の方針を試せます。
ピッカーが既定で出すのは、現在のワークツリーのセッション(バックグラウンドセッションにはbgマークが付きます)と、/add-dirで現在のディレクトリを追加した他所のセッションです。広げるショートカットは3つあります。
| ショートカット | 効果 |
|---|---|
Ctrl+W | 効果同じリポジトリの全ワークツリーへ広げる(複数ワークツリーのリポジトリでのみ表示) |
Ctrl+A | 効果このマシン上の全プロジェクトへ広げる。もう一度押すと戻る |
Ctrl+B | 効果現在のgitブランチのセッションだけに絞る。もう一度押すと全ブランチ |
Ctrl+Aで広げると、各行にプロジェクトのパスも表示されます。ブランチ単位の絞り込みの仕組みはClaude Codeでブランチをまたぐセッションはどう扱われるかで扱っています。
一覧に出ないセッションと、IDなら届くセッション
一覧に目的のセッションが無いとき、プロジェクトの範囲以外にも理由があります。claude -pやAgent SDKで作ったセッションはピッカーにもclaude --continueにも出ません。最初のプロンプトが/loopだったセッションも、ピッカーと--continueから外れます。
これらはclaude --resume <session-id>なら開けます。IDでの再開はディレクトリに縛られず、v2.1.223より前は現在のプロジェクトとそのワークツリーまでしか探していませんでした。今は別プロジェクトのセッションも見つかります。ただし、同じIDの転写ファイルを複数のプロジェクトが持っていると、手でコピーした重複を勝手に選ばないよう、not-foundとして報告されます。
無関係なプロジェクトを選んだときの安全策
別ワークツリーのセッションを選ぶとその場で再開されます。まったく別のプロジェクトを選んだ場合は、再開せずにcdと再開コマンドがクリップボードへコピーされます。そのプロジェクトのディレクトリがもう無いときは、コピーせずに現在のディレクトリで再開します。
全プロジェクトが既定で並んでいた期間は、この安全策があっても、無関係なセッションを隣に見ながら選ぶ状態が続いていたことになります。ピッカーで選んだセッションは、保存されていた権限モードが復元されません。実行中のセッション内で/resumeを使って切り替えた場合は、切り替え先が今のセッションの権限モードで続きます。復元の範囲はClaude Codeの/resumeコマンドで過去の会話を再開するにまとめています。
bgマーク付きのバックグラウンドセッションを複製して並行運用したいときは、Claude Code forkコマンドでセッションをバックグラウンドに複製するが参考になります。
名前で再開するときの挙動
一覧を広げなくても、名前を付けておけばclaude --resume <name>で現在のリポジトリとそのワークツリーを横断して探せます。完全一致するセッションがあれば、別のワークツリーにあっても直接再開されます。
| コマンド | 名前が1つに決まるとき | 名前が複数に当たるとき |
|---|---|---|
claude --resume <name> | 名前が1つに決まるとき直接再開 | 名前が複数に当たるとき名前を検索語にしたピッカーを開く |
/resume <name> | 名前が1つに決まるとき直接再開 | 名前が複数に当たるときエラーを返す。引数なしの/resumeでピッカーを開く |
同じ名前を使っている別の生きたセッションが手元にあると、後から付けたほうはauth-refactor-graceful-unicornのように2語の接尾辞が付きます。名前を付けない場合も、最初のプロンプトから作られる生成タイトルが再開の手がかりになります。claude -n <name>で起動時に付けるか、ピッカー上でハイライトしてCtrl+Rでも変えられます。
ピッカーの探し方
ピッカーでは、検索モードに入ってセッションを絞り込めます。GitHubやGitLabのプルリクエストのURLを貼ると、そのPRを作ったセッションが見つかります。Spaceでセッションの中身をプレビューでき、→と←でグループ化された行を展開・折りたたみできます。
各行には、名前か生成タイトル、最終更新からの経過時間、gitブランチ、ファイルサイズが並びます。プロジェクトが混在する一覧では、ブランチ名とパスの両方を見て選ぶと取り違えにくくなります。
長く放置したセッションを開いたとき
ProまたはMaxプランで、1時間以上動いていない100,000トークン超のセッションを再開すると、最初のメッセージを送る前にダイアログが出ます。プロンプトキャッシュが切れているため、どの選択肢でも最初のリクエストは履歴全体を処理します。
選択肢は「要約から再開」「そのまま全体を再開」「次回から確認しない」の3つです。「次回から確認しない」を選ぶと、そのセッションを全体で再開したうえで、以降の再開ではこのダイアログが出なくなります。要約から再開すると/compactが走り、履歴が要約と直近のやり取り、最近読んだ最大5ファイルに置き換わります。
再開しても戻らないもの
セッションを再開すると、ツール呼び出しを含む会話履歴と、--agentで選んだエージェントは引き継がれます。起動時に渡した--mcp-config、--settings、--plugin-dir、--fallback-model、--add-dirは戻りません。再開のときにもう一度渡す必要があります。settings.jsonなどの設定ファイルは起動のたびに読み直されるので、そちらは渡し直さなくて済みます。
手元の環境がどちらの挙動か確かめる
回帰の影響を受けるのはv2.1.101からv2.1.107までです。範囲に入っているかは次の3ステップでわかります。
影響を受けているかの確認
- 1
バージョンを見る
claude --versionの出力がv2.1.101〜v2.1.107かどうかを見ます。 - 2
範囲内なら更新する
claude updateでv2.1.108以降に上げると、既定が現在のプロジェクトに戻ります。 - 3
更新が止まっていないか調べる
DISABLE_AUTOUPDATER=1は自動のバックグラウンド更新だけを止め、手動のclaude updateは動きます。DISABLE_UPDATES=1だとclaude updateとclaude installも止まるので、後者が残っていると更新できません。
まとめ
v2.1.101で全プロジェクト表示が既定になり、v2.1.108で現在ディレクトリに戻っています。今は、目的のセッションが一覧に無ければ、まずCtrl+Aで範囲を広げます。それでも出ないならclaude -p系や/loop始まりのセッションを疑い、IDがわかればclaude --resume <session-id>で直接開きます。