test(reset): select a working Bash instead of an unusable WSL launcher (#671)

* test(reset): probe Bash variable expansion on Windows

Use a bounded variable-expansion probe so a launcher that starts successfully but consumes $x is rejected. Rebase over #676 and keep its upstream-checkout guard alongside Bash discovery.

Thanks to MadsLorentzen for diagnosing the launcher expansion failure and verifying the stronger probe.

* changelog: place the #671 entry under [Unreleased]

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Mads Lorentzen <madslorentzen_17@hotmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
authored and GitHub committed 2026-10-20 17:26:53 +02:00
1 parent 64a6c90ec3
commit 215dfb5af9
5 files changed
+118 -3

No files matched your search

+8
View File
@@ -263,6 +263,14 @@ per-file diff commands.
`MadsLorentzen/ai-job-search/1.0 (freehire-search)`. The host-check test now lists `github.com` and
`gist.github.com` postings among the hosts that must stay unverified.
- **The `/reset` replay tests find a Bash that actually runs the script on Windows** (#671,
`tests/_bash.py`, `tests/test_bash.py`, `tests/test_reset_command.py`, `tests/test_reset_documents.py`) -
the tests replayed the documented `/reset` commands with whichever `bash` came first on PATH. On
Windows that is often the WSL launcher, which expands variables before WSL's bash sees them, so the
replayed script deleted nothing and two tests failed. Each candidate is now probed with
`x=ok; test "$x" = ok`, Git for Windows' own Bash is tried when the launcher fails the probe, and the
replay checks skip only when no usable shell is found.
### Security
- **CI no longer leaves the job token in `.git/config` or expands a PR-controlled name into a