You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
validate_candidate hardcodes /bin/sh, breaks all validation gates on Windows (WinError 2) #11
auto-re-agent 0.3.0, Windows 11, Python 3.12. Every configured build/test/runtime validation command fails with [WinError 2] because verification/candidate.py runs them via ["/bin/sh", "-lc", expanded], which does not exist on Windows. Local workaround: platform-branch to ["cmd", "/d", "/s", "/c", expanded] when os.name == "nt" (same idiom process.py already uses for start_new_session). Happy to PR this if wanted.
Follow-up on Windows validation: second half of the same bug. _expand_shell() always emits POSIX ${VAR} placeholders, so under cmd.exe the candidate path arrives literally (cl reports D9024/D9027, compiles nothing, exit 0 -> false PASS, worse than failing). Fix: emit %VAR% when os.name == nt. With both patches, validation gates run for real on Windows.
Windows validation now fully green locally with two minimal patches (shell branch + bare %VAR% expansion, details in issue). Verified: checker PASS + objective PASS + real cl compile gate PASS + parity green on a sample function. The quoting trap is worth fixing upstream alongside the shell one: nested Popen-list2cmdline + cmd /s turns quoted placeholders into literal single-quoted filespecs, and cl exit 0 on ignored files makes it a silent false PASS (worse than failing).
Thanks for the report and the follow-up on placeholder handling. Native Windows validation is supported in v0.4.0, now published to PyPI, through the argument-array commands added in #12.
Arrays execute directly, and {candidate_file}, {overlay_root}, and {source_file} expand into argument values, including paths with spaces. Do not add shell quotes inside array values. Arrays do not expand %VAR%, $VAR, pipes, or other shell syntax. Existing string commands retain POSIX /bin/sh behavior; doctor reports when that shell is unavailable.
Windows Python 3.12 CI passed with 193 tests passing and six skipped; Linux, macOS, lint, and package checks also passed. This is CI coverage of the portable command path, not a replay of your exact MSVC project.
If an AI agent handles your setup, it should detect the environment and perform this migration as part of its normal setup workflow; no Windows-specific user prompt is required. The setup-agent instructions now make this explicit. The ReAgent runner does not itself rewrite existing configurations.
Verified on 0.4.0: migrated our validation to array form (cmd /d /s /c compile-check.bat + placeholder), local patches removed by upgrade. Trial shows objective PASS + real cl compile gate PASS + parity green. Thanks for the fast turnaround.
Activity
Gotens commentedon Sep 9, 2026
Follow-up on Windows validation: second half of the same bug. _expand_shell() always emits POSIX ${VAR} placeholders, so under cmd.exe the candidate path arrives literally (cl reports D9024/D9027, compiles nothing, exit 0 -> false PASS, worse than failing). Fix: emit %VAR% when os.name == nt. With both patches, validation gates run for real on Windows.
Gotens commentedon Sep 9, 2026
Windows validation now fully green locally with two minimal patches (shell branch + bare %VAR% expansion, details in issue). Verified: checker PASS + objective PASS + real cl compile gate PASS + parity green on a sample function. The quoting trap is worth fixing upstream alongside the shell one: nested Popen-list2cmdline + cmd /s turns quoted placeholders into literal single-quoted filespecs, and cl exit 0 on ignored files makes it a silent false PASS (worse than failing).
Dryxio commentedon Sep 9, 2026
Thanks for the report and the follow-up on placeholder handling. Native Windows validation is supported in v0.4.0, now published to PyPI, through the argument-array commands added in #12.
python -m pip install --upgrade "auto-re-agent>=0.4.0"Please migrate build/test/runtime command strings to arrays. For example, from a Visual Studio Developer Command Prompt with
clavailable:Arrays execute directly, and
{candidate_file},{overlay_root}, and{source_file}expand into argument values, including paths with spaces. Do not add shell quotes inside array values. Arrays do not expand%VAR%,$VAR, pipes, or other shell syntax. Existing string commands retain POSIX/bin/shbehavior;doctorreports when that shell is unavailable.Windows Python 3.12 CI passed with 193 tests passing and six skipped; Linux, macOS, lint, and package checks also passed. This is CI coverage of the portable command path, not a replay of your exact MSVC project.
If an AI agent handles your setup, it should detect the environment and perform this migration as part of its normal setup workflow; no Windows-specific user prompt is required. The setup-agent instructions now make this explicit. The ReAgent runner does not itself rewrite existing configurations.
Closing as resolved in the published release. Migration documentation.
Gotens commentedon Sep 11, 2026
Verified on 0.4.0: migrated our validation to array form (cmd /d /s /c compile-check.bat + placeholder), local patches removed by upgrade. Trial shows objective PASS + real cl compile gate PASS + parity green. Thanks for the fast turnaround.