82436b0e93
Runtime: the loader's AVX2 probe used [System.Runtime.Intrinsics.X86.Avx2] via powershell.exe, which only exists on .NET Core — stock Windows PowerShell 5.1 raised TypeNotFound, so every Windows host silently loaded the baseline addon and paid ~270ms for the spawn on the startup path. Ask the kernel via bun:ffi (IsProcessorFeaturePresent(PF_AVX2_INSTRUCTIONS_AVAILABLE), ~0.5ms) and fall back to pwsh-then-powershell for Node embeds. scripts/host-detect.ts shared the same broken probe for build-time variant selection. Build: `bun run build:native` on a win32 host died deep inside the bazel msvc repo rules (linux/mac exec hosts only, by design). The `host` pseudo-target now delegates to the local napi build against real VS Build Tools, and other targets fail fast with guidance. build-bindings.ts resolves the @napi-rs/cli JS entry from its manifest (the node_modules/.bin shim is a PE launcher Bun cannot parse) and auto-appends VS Build Tools' bundled CMake/Ninja to PATH via vswhere so a vcvars prompt is no longer required. Cap maudio at opt-level=1 to dodge a rustc ICE codegenning MaybeUninit<ma_fence> for x86_64-pc-windows-msvc under the pinned nightly (Bazel's older pin is unaffected). Compile: Bun.Glob.scan yields backslash paths on Windows; the legacy Pi virtual module used them verbatim for export keys and generated identifiers, producing invalid JavaScript in compiled-binary builds. Tests: strip ConPTY negotiation escapes in the pty argv test; ignore the bazel-oh-my-pi convenience symlink.