Skip to content

fix(ci): complete Windows pre-push launch path#9804

Open
tianmind-studio wants to merge 1 commit into
BasedHardware:watchdog/issue-9724-preflight-runner-windows-signalsfrom
tianmind-studio:codex/windows-preflight-wrapper
Open

fix(ci): complete Windows pre-push launch path#9804
tianmind-studio wants to merge 1 commit into
BasedHardware:watchdog/issue-9724-preflight-runner-windows-signalsfrom
tianmind-studio:codex/windows-preflight-wrapper

Conversation

@tianmind-studio

@tianmind-studio tianmind-studio commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Summary

Completes the native-Windows launch path in #9730:

  • pass the active Bash executable to preflight_runner.py before the extensionless scripts/pre-push path
  • add a wrapper contract plus a real host-Bash launch test
  • let the POSIX killpg simulations construct that missing API on Windows
  • select the portability check whenever the wrapper changes

Root cause and guard

After #9730 avoids the missing signal.SIGHUP, Python 3.11 on Windows reaches subprocess.Popen but CreateProcess cannot execute the extensionless Bash script directly. Binding the wrapper to its already-running $BASH preserves POSIX behavior and gives Windows an executable entrypoint. The manifest-backed regression test keeps that argv contract attached to future wrapper edits.

Verification

  • Before the wrapper change, the regression test failed because the first command after -- was pre-push, not Bash.
  • python .github/scripts/test_preflight_runner.py -> 11 tests OK on native Windows
  • python .github/scripts/test_run_checks.py -> 9 tests OK
  • Direct runner proof -> windows-bash-launch-ok
  • Local PR preflight -> 9 selected checks passed
  • Real git push reached and passed the portability/preflight/deployment-policy checks; the older fix(ci): make pre-push single-flight runner start on hosts without POSIX signals (#9724) #9730 base then stopped at its pre-existing backend/.venv/bin/python requirement.

Product invariants: none.

Review in cubic

@Git-on-my-level

Copy link
Copy Markdown
Collaborator

Thanks for tightening the Windows pre-push path. I reviewed the diff and the shape looks good: the wrapper now invokes the extensionless Bash hook through the active Bash executable, the portability check is triggered when the wrapper changes, and the added tests cover both the wrapper contract and a real runner-to-Bash launch path.

I’m not formally approving because this touches CI/pre-push workflow plumbing and the PR targets a stacked/non-default base branch, so it should still get human maintainer review before merge. No changes requested from this automation review.


by AI on behalf of David — if you need David’s attention urgently, please @Git-on-my-level and escalate with need human response.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

waiting-on-maintainer Stalled on maintainer action — do not close until unblocked

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants