CI only: Windows module, test kit and rig

Draft
BA
8d ago
+1210-165

CI-only draft for native Windows runs of the combined Windows slices. It targets integration/windows because main has moved on and conflicts. Not for merging.


Summary by cubic

CI-only draft that enables native Windows runs of the module, test kit, rig, and host regression suites; targets integration/windows and is not for merging. Windows child processes now spawn and are owned through basal-launch instead of std::process::Command, so the worker and module suites build and run on Windows.

Windows spawns and process ownership

  • Every Windows child spawn takes a process-wide spawn_lock while its handles are inheritable, so no concurrent spawn can copy another child's handle; spawn_plain starts unconfined children (fixtures, helper tools) under the same rules.
  • Module workers are launched via basal-launch; confinement-fault deaths are counted separately in CONFINEMENT_FAULT_DEATHS, matching Unix SIGSYS accounting.
  • basal-testkit and basal-rig now track native process exit and released ownership, sample working sets, and terminate crash parents natively; reaping assertions observe a signaled process handle.
  • The rig's native process discovery is exercised with a real current-image positive control and an absent-image negative control; the fixture focuses on the CI runtime.
  • CI gains standalone basal-testkit, basal-rig, and basal-host regression test jobs alongside the module job.

Tests and fixtures

  • Host privacy regressions use the public git::run(RevParse) surface so the Windows-private repo capability type stays out of integration tests.
  • fs tests assert platform-specific path behavior: Windows refuses raw .. components with invalid_arguments, Unix resolves and denies them.
  • POSIX-only fixtures (symlinks, signals, descriptor numbers) are #[cfg(unix)] gated and listed in evidence/windows-build-failures.md; remaining assertions in mixed tests still run.
  • New coverage includes the store's owner-only DACL on Windows, leftover PID-based temp directories not blocking launches, and native Windows job/descendant cleanup.
  • cortexkit-store is bumped to =0.2.4 for Windows store support.