Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Fix PATH-resolution mismatch in env/path scenario generation
copilot-pull-request-reviewer flagged that dimension pair 2's
generated scenarios paired every path style (including "default")
with launch="path". For path="default" the PATH-rearrangement
switch is a no-op, leaving PATH unmodified, so the workspace copy of
gh-aw.exe is never resolvable via `where gh-aw` on a clean runner --
those scenarios would fail before invoking the CLI at all.

Fix: path="default" now pairs with launch="direct" (consistent with
dimension pair 1's own default/default scenario, since PATH
rearrangement has no effect on a direct invocation anyway); every
other path style still pairs with launch="path". Updated the
duplicate-skip condition accordingly (now skips both combinations
dimension pair 1 already covers for the representative shell),
yielding 32 unique scenarios (down from 33, since one more overlap is
now correctly excluded).

Verified via actual PowerShell execution in a container (not just
static review): scenario count, name uniqueness, full shell x launch
and env x path coverage, and a new explicit regression check that no
launch="path" scenario has path="default".

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
  • Loading branch information
pelikhan and Copilot committed Oct 10, 2026
commit 16df24126a289b6218573425dbf145c54aad190c
17 changes: 11 additions & 6 deletions .github/workflows/windows-cli-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -205,14 +205,19 @@ jobs:

# Dimension pair 2: env-shape x path-style, every environment variant
# exercised across every PATH arrangement via a fixed representative
# shell/launch. Dimension pair 1 already generates
# $representativeShell/path/default/workspace-first (its "path"
# launch mode always resolves to the workspace-first PATH style),
# so that exact combination is skipped here to avoid a duplicate.
# shell. The "default" path style means "do not resolve via PATH at
# all", so it is paired with direct invocation (matching dimension
# pair 1's own default/default direct scenario); every other path
# style is paired with PATH-based launch, since rearranging PATH has
# no effect on a direct invocation. Dimension pair 1 already
# generates $representativeShell/direct/default/default and
# $representativeShell/path/default/workspace-first, so both are
# skipped here to avoid duplicates.
foreach ($env in $envShapes) {
foreach ($path in $pathStyles) {
if ($env -eq "default" -and $path -eq "workspace-first") { continue }
$scenarioMatrix.Add(@{ name = "$representativeShell/path/$env/$path"; shell = $representativeShell; launch = "path"; env = $env; path = $path })
if ($env -eq "default" -and ($path -eq "default" -or $path -eq "workspace-first")) { continue }
$launch = if ($path -eq "default") { "direct" } else { "path" }
$scenarioMatrix.Add(@{ name = "$representativeShell/$launch/$env/$path"; shell = $representativeShell; launch = $launch; env = $env; path = $path })
}
}
Comment thread
pelikhan marked this conversation as resolved.
Resolved

Expand Down
Loading