test(cli): run the pi round trips on Windows, and Go on macOS
pi-enable and pi-wrap could not join the Windows gate: their fixtures built PATH with `:` and wrote extensionless `#!/bin/sh` stubs, which Windows cannot execute at all. tests/harness/stub-bin.mjs gives them two stub shapes, one per way the CLI launches things — a .cmd Node shim for commands routed through portableInvocation (`pi`), and, for the Go binaries the CLI execFile's directly, a real .exe: node.exe hardlinked under the binary's name, answering from a --require preload that runs before Node resolves argv[1] as a script. A .cmd cannot serve there, since Node refuses to spawn one without a shell (CVE-2024-27980). Both fixtures also set USERPROFILE beside HOME — os.homedir() reads it on Windows, and the Pi extension directory hangs off it — and retry cleanup for handles Windows still holds. update.runtime.mjs stays out, and not for a harness reason: its committed checksum manifest carries only darwin and linux artifacts, so on win32 `update` looks up caveman-proxy_win32_amd64 and fails before downloading anything. Adding those rows needs the release signing key; the regeneration recipe is recorded at the fixture read. The macOS job also runs `go test ./engine/... ./proxy/... ./shared/...` — without it the runner touched no Go at all, so a BSD-only path, spawn or timer regression shipped green on the platform this job exists to cover. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SqmbqWDtNexzDfH5V3BMRz
J
Julius Brussee committed
7a03e6ffbc846c2585fb4aa42eed254d33f3ee72
Parent: ce6850d