fix(ps1): replace null-conditional operator for PowerShell 5.1 compatibility (#1975)

The `?.` (null-conditional member access) operator requires PowerShell 7.1+,
but Windows ships with PowerShell 5.1 by default. When AI agents invoke .ps1
scripts on Windows, they typically use the system-associated handler (5.1),
causing a ParseException: Unexpected token '?.Path'.

Replace the single `?.` usage with a 5.1-compatible two-step pattern that
preserves the same null-safety behavior.

Fixes #1972
This commit is contained in:
Manfred Riem
2026-03-25 12:54:49 -05:00
committed by GitHub
parent 4b4bd735a3
commit 2c2fea8783

View File

@@ -8,7 +8,8 @@ function Find-SpecifyRoot {
# Normalize to absolute path to prevent issues with relative paths
# Use -LiteralPath to handle paths with wildcard characters ([, ], *, ?)
$current = (Resolve-Path -LiteralPath $StartDir -ErrorAction SilentlyContinue)?.Path
$resolved = Resolve-Path -LiteralPath $StartDir -ErrorAction SilentlyContinue
$current = if ($resolved) { $resolved.Path } else { $null }
if (-not $current) { return $null }
while ($true) {