VSCode + WSL + Gemini で Windows側ディレクトリを入れ替えたときに起きるキャッシュ問題と、再起動での解決方法
VSCode の「Remote – WSL」拡張は、WSL 上の Linux 環境から Windows 側のプロジェクトを扱えるため、多くの開発者に利用されています。
Windows 上のディレクトリを WSL 側にシンボリックリンクでマッピングし、あたかも Linux 側のディレクトリであるかのように運用するケースも一般的です。
ln -s /mnt/c/Users/xxx/project ~/project
この構成に Gemini などの AI IDE を組み合わせることで、効率的な開発環境が実現できますが、ある場面で予期しない現象が起きたという話を耳にしました。
Windows 側で src ディレクトリを入れ替えたら、AI IDE が古い内容を参照し続けた
とある環境で、Windows 上の src ディレクトリをバックアップと入れ替える作業が行われました。
VSCode や WSL から見えるパスは変わらないため、本来はこの操作で問題が出ることはありません。
ところが、Gemini にコード編集を依頼すると、
既に削除したはずの旧 src ディレクトリの内容が参照され続けるという現象が発生していました。
- 新しいファイルが見えない
- 古いファイルが残っているように扱われる
- symlink 配下の更新が反映されない
- 「ファイルが存在しません」「権限がありません」といったエラーが出る
明らかに、実ファイルの状態と AI IDE の認識が一致していません。
原因は IDE の内部キャッシュにあった
調査の結果、この問題はシンボリックリンクの不具合や WSL の問題ではなく、
AI IDE が内部に保持しているキャッシュが更新されていなかったことが原因でした。
AI IDE は次のような情報を内部で保持します。
- 起動時点のディレクトリ構造
- ファイルの存在判定
- symlink の解決結果
- ターミナルの状態
これらは プロセスを再起動しない限り更新されないことがあるため、
外部(Windows Explorer や Git 操作など)でディレクトリを丸ごと入れ替えても、
IDE 側がその変化に気づけない場合があるのです。
解決方法はシンプル:AI ターミナルの再起動
最終的に、この問題は Gemini ターミナルを再起動するだけで解決しました。
再起動することで、IDE が内部キャッシュを破棄し、
新しいディレクトリ構造を正しく読み込むようになります。
- 新しい src が表示される
- 古いファイル情報が消える
- symlink の指す先も正しく再評価される
という正常な状態に戻りました。
教訓:ディレクトリ構造を大きく変更したら、再起動を検討する
この事例から得られる重要な教訓は次のとおりです。
WSL + Windows の構成で、ディレクトリを丸ごと置き換えたときは AI IDE(Gemini)やターミナルを再起動する。
WSL と Windows はファイル更新通知の仕組みが異なり、
AI IDE は内部キャッシュに依存して動作するため、
ディレクトリの急激な変更が IDE 側に反映されないことがあります。
これは VSCode、Gemini、Copilot など幅広いツールで起き得る問題です。
まとめ
VSCode + WSL + Gemini の構成は非常に便利ですが、
Windows 側のディレクトリを外部で入れ替えると、
AI IDE が古いキャッシュを保持したまま動作することがあります。
もしファイルが更新されていない、古い内容を参照していると感じたら、
まずは ターミナルの再起動を試すことをおすすめします。
AI を使った開発が一般化した今、ツール内部のキャッシュを理解し、
必要に応じてリセットすることも、快適な開発環境を保つうえで大切なポイントです。