VScode 起動時に怒られる
掲題の通りではあるけど、 VScode 起動時に毎回怒られていた。
これは macOS 環境で zsh をデフォルトから homebrew 産に chsh で切り替えて、なおかつ prezto と powerlevel10k を入れているため、起動時のシェル環境解決に時間がかかるためのようだ。
数年付き合ったが、ようやく重い腰を上げて解決することにした。
profile で分岐を設定する
VScode で起動するときは nvm など env 系のツールを読み込ませない、という回避方法。 現代の AI エージェントを設定している環境では、ターミナルアクセスが必要になるパターンは往々にしてあるので、AI エージェントを使っていなければよさそうだが、筋がよくない感じはする。
プロファイリング & リファクタリング
zsh は標準でプロファイリングができるので、同じ手法でプロファイリングして遅いヤツを潰していく、という具合。
特に自分は anyenv を同じように利用していたので遅延ロードでも仕込もうかと思ったが、それって解決しなくない……? という気もしたので、これは参考程度にとどめておく。
VScode のシェル解決時間を伸ばす
昔調べた時は存在していなかった項目の気がするけど、 application.shellEnvironmentResolutionTimeout というのが存在する。
To work around this, when launched via a UI gesture, VS Code will start a small process to run (or "resolve") the shell environment defined in your, .bashrc, .zshrc, or PowerShell profile files. If, after a configurable timeout (via application.shellEnvironmentResolutionTimeout, defaults to 10 seconds), the shell environment has still not been resolved or resolving failed for any other reason, VS Code will abort the "resolve" process, launch without your shell's environment settings, and you will see an error like the following:
これを回避するために、VS Code は、UI ジェスチャ経由で起動されると、.bashrc、.zshrc、または PowerShell プロファイル ファイルで定義されたシェル環境を実行 (または「解決」) するための小さなプロセスを開始します。構成可能なタイムアウト (application.shellEnvironmentResolutionTimeout 経由、デフォルトは 10 秒) が経過しても、シェル環境がまだ解決されていないか、他の理由で解決に失敗した場合、VS Code は「解決」プロセスを中止し、シェルの環境設定なしで起動し、次のようなエラーが表示されます。
とのことで、今回はこれを伸ばすことで解決した。 別に 30 秒くらいなら待ってもいいかな、という気持ちなので。

数値を変えて試した所、自分の環境ではだいたい 13 秒必要だった様子で、12 秒だと確実に・14 秒だと半分くらいの割合でエラー、という具合だった。 後々を考えると面倒なので、デフォルト 10 秒を 30 秒にして雑に解決した。
以上です
以上です。
まあ正直これらは誤差みたいなもんで、(最近新しい契約先とお仕事を始めたので) ついに Github Copilot を契約して VScode に設定したのですが、そちらの起動がめちゃくちゃ遅くて「もうどうしようもねえな、諦めよう」という気持ちの所が大きいです。