Development record
ahoy install-mode tests inherit the real PATH: with an installed ~/.local/bin/abcd present, TestDevInstallWritesShimAndSurfacesMode, TestNormalInstallRegressionPin, TestInstallPinnedToDevTransition and TestInstallDevToPinnedTransition fail with 'shadowed on PATH' because the developer's live install shadows the test's; the tests pass when ~/.local/bin is removed from PATH, so the suite is red on any machine that has abcd installed the documented way
issueresolvedminoriss-249
ahoy install-mode tests inherit the real PATH: with an installed ~/.local/bin/abcd present, TestDevInstallWritesShimAndSurfacesMode, TestNormalInstallRegressionPin, TestInstallPinnedToDevTransition and TestInstallDevToPinnedTransition fail with 'shadowed on PATH' because the developer's live install shadows the test's; the tests pass when ~/.local/bin is removed from PATH, so the suite is red on any machine that has abcd installed the documented way
Frontmatter
| id | iss-249 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-249-ahoy-install-tests-inherit-real-path.md
open on GitHub ↗ · commit history ↗
mentions1
- iss-275TestGuardShimFailsOpenLoud's runShim inherits the host PATH, so on a machine with a real abcd installed the guard hook's PATH-fallback rung (shipped with the hook resolution ladder) finds it: the binary-absent case genuinely guards the session via the PATH binary, no UNGUARDED warning prints, and the test fails — environmentally, exactly the machines that dogfood the install. CI is unaffected (no abcd on PATH). Same class as iss-249, in the cli shim harness; the hooks_selfprovision_test hookRun helper already pins PATH for this reason and is the pattern to copy. Detector: the test itself on an affected machine; acceptance: go test ./internal/surface/cli/ -run TestGuardShim passes unmodified with an abcd on PATH — including a new case asserting the PATH rung guards the session when the plugin root is empty.