Run the SDK's Bun-only main tests only on Bun
The extension SDK's runner and sandbox tests are skipped under Node, and guardedFetch replays redirect bodies in a way both runtimes accept.
Seven SDK tests failed when Vitest ran on Node (bunx vitest) because they assume Bun. The repo runs Vitest on Bun, where all 31 tests in packages/extensions/src/main/ pass.
The runner tests and the sandbox probe now run only when "Bun" in globalThis, with comments naming bun run test:unit. guardedFetch in network.ts replays a 307 or 308 body from arrayBuffer() instead of a stream, which Node’s Request refused without duplex: "half".
Evidence
No screenshot: Test and tooling change; nothing is visible in the app.