Stop each render from appending a dead tools path to the user PATH

Every Faust render, and every trial-loop lane, runs dotnet with a fresh
DOTNET_CLI_HOME under the temp directory. The SDK's first-run experience
appends "<home>\.dotnet\tools" to the persisted user PATH each time, and
DOTNET_SKIP_FIRST_TIME_EXPERIENCE does not stop that part. Seventy-nine
dead entries had accumulated (9,634 chars), past cmd's environment limit,
so anything spawned through cmd lost the tail of PATH — node included.

DOTNET_ADD_GLOBAL_TOOLS_TO_PATH=0 is the switch that governs the PATH
write. Set it everywhere a throwaway dotnet home is used; telemetry
opt-out rides along for the renderer since these homes never persist.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Meta Vens 2026-09-10 20:49:46 +02:00
commit e625283342
4 changed files with 19 additions and 13 deletions

View file

@ -323,6 +323,11 @@ public static class FaustCompiler
{
["DOTNET_CLI_HOME"] = home,
["DOTNET_SKIP_FIRST_TIME_EXPERIENCE"] = "1",
// The first-run experience still appends "<home>\.dotnet\tools" to the
// persisted user PATH; with a fresh home per render that left one dead
// entry per render until the PATH blew past cmd's environment limit.
["DOTNET_ADD_GLOBAL_TOOLS_TO_PATH"] = "0",
["DOTNET_CLI_TELEMETRY_OPTOUT"] = "1",
["DOTNET_NOLOGO"] = "1",
["NUGET_PACKAGES"] = packages,
["APPDATA"] = appData,