mirror of
https://github.com/deepseek-ai/deepseek-harness
synced 2026-08-15 21:04:50 +00:00
The lane-split merge moved the Run gates step to `shell: bash`, which broke it twice over. First, GHA's bash shell runs with -e, so a failing gate aborted the step before the ::warning::/exit 0 lines — the lane went red X instead of the intended yellow warning. Second, and worse, Git Bash as the PARENT of the gate run leaks MSYS environment into the suite itself, producing 8 real test failures the pwsh-launched runs (and the DSec VM runs) never saw: - bash exports PWD; the MSYS runtime rewrites it to Windows form for native children, dsh-bash-local's adaptEnv passes it through, and the executor's MSYS bash adopts it — `pwd` prints `D:/a/...` where the tests (and the executor's MSYS dialect) expect `/d/a/...` (7 tests). - cygwin enables SeBackupPrivilege on the runner's admin token; children inherit the enabled state, and libuv's FILE_FLAG_BACKUP_SEMANTICS read opens then pierce the dwShareMode=0 lock the jsonl EBUSY test holds — loadLive resolves instead of rejecting (1 test). Evidence: run 28918325498 (pwsh step, pre-merge) failed only the two hooks dispose tests since fixed by f8fd8c00; run 28921741006 (bash step) fixed those and failed exactly the 8 above, with zero relevant source diff between them. Fix: run the wrapper in pwsh — a native command's failure doesn't abort pwsh, so $LASTEXITCODE capture + ::warning:: + exit 0 works without an errexit dance, and the gates start from a native Windows shell as they do everywhere else Windows CI has been validated. Docs: the windows-support RFC drops the stale continue-on-error wording (replaced by the warning wrapper) and records the launch-environment limitation — native shell required today; making an MSYS parent a supported launch environment (PWD scrub in adaptEnv, privilege-explicit tests) is a future improvement direction.