From 66d5b842935ce6888d5b2d67368d1fad25370f9c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 9 Jun 2026 14:56:14 +0000 Subject: [PATCH 1/2] Expand Windows terminal scenario requirements Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> --- ...daily-windows-terminal-integration-builder.lock.yml | 2 +- .../daily-windows-terminal-integration-builder.md | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/daily-windows-terminal-integration-builder.lock.yml b/.github/workflows/daily-windows-terminal-integration-builder.lock.yml index f50f2336017..a46cda76ca7 100644 --- a/.github/workflows/daily-windows-terminal-integration-builder.lock.yml +++ b/.github/workflows/daily-windows-terminal-integration-builder.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"4f75e4831dc14511eef55291db11576f49e5de6d2aafb0cb54c00455650293e2","body_hash":"c25cc4e1dd8259c50f2f3768c3fe32d59dd19f3df5743135d9a693a1a6719034","strict":true,"agent_id":"copilot","engine_versions":{"copilot":"1.0.60"}} +# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"4f75e4831dc14511eef55291db11576f49e5de6d2aafb0cb54c00455650293e2","body_hash":"d49fc11800684cdf6079cee41b153988bfdf3b4fa108409f6351dcf886b37be4","strict":true,"agent_id":"copilot","engine_versions":{"copilot":"1.0.60"}} # gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"df4cb1c069e1874edd31b4311f1884172cec0e10","version":"v6.0.3"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.68"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.68"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.68"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.68"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.25","digest":"sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.25@sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa"},{"image":"ghcr.io/github/github-mcp-server:v1.1.2","digest":"sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c","pinned_image":"ghcr.io/github/github-mcp-server:v1.1.2@sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c"},{"image":"node:lts-alpine","digest":"sha256:2bdb65ed1dab192432bc31c95f94155ca5ad7fc1392fb7eb7526ab682fa5bf14","pinned_image":"node:lts-alpine@sha256:2bdb65ed1dab192432bc31c95f94155ca5ad7fc1392fb7eb7526ab682fa5bf14"}]} # ___ _ _ # / _ \ | | (_) diff --git a/.github/workflows/daily-windows-terminal-integration-builder.md b/.github/workflows/daily-windows-terminal-integration-builder.md index bd6426b3789..3d886cdac99 100644 --- a/.github/workflows/daily-windows-terminal-integration-builder.md +++ b/.github/workflows/daily-windows-terminal-integration-builder.md @@ -41,8 +41,18 @@ If it is missing, create it. If it exists, improve it only when needed to match - Build job must run on `ubuntu-latest` and compile the Windows CLI binary (`gh-aw.exe`), then upload it as an artifact. - Integration test job must run on `windows-latest`, download the artifact, and run integration checks across several CLI commands, including help output. - Integration tests must cover weird-but-popular Windows terminal setup combinations (for example `pwsh`, Windows PowerShell, and `cmd` execution paths) to catch shell-specific integration regressions. +- Treat scenario coverage as a systematic matrix (shell x launch mode x environment shape x path style) instead of ad-hoc spot checks. +- Include chaos-style terminal/environment scenarios that mirror common Windows developer habits: + - no-profile shells (`pwsh -NoProfile`, `powershell -NoProfile`) and default profile shells + - PATH order and PATH shadowing quirks (workspace-first, toolcache-first, duplicate entries) + - PATHEXT and extension resolution behavior for `.exe` invocation from different shells + - paths with spaces/parentheses and mixed slash styles (`C:\path with spaces\...` and `/` vs `\`) + - unicode and non-ASCII working directories/user-profile-like paths + - environment toggles commonly used by developers (`NO_COLOR`, `TERM`, `CI`, and empty/minimal env subsets) + - command invocation variants (`gh-aw.exe help`, `gh-aw.exe --help`, subcommand help, and unknown-command failure paths) - Integration test commands must defend against Windows hangs by using timeouts and clearly surfacing timeout failures. - Include explicit checks for Windows-specific integration issues, especially command hanging behavior. +- Include at least one negative/chaos case that intentionally stresses terminal behavior and verifies failure is explicit, fast, and debuggable. - Add a final `conclusion` job that runs with `if: always()`, aggregates prior job outcomes, and determines overall success/failure. - If any required job fails, the conclusion job must create a GitHub issue describing failed jobs and linking the run. From d32e3946ca65779e0a680ed9d66b978aefeefcd8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 9 Jun 2026 15:02:46 +0000 Subject: [PATCH 2/2] Polish Windows path examples in scenario matrix Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> --- .../daily-windows-terminal-integration-builder.lock.yml | 2 +- .github/workflows/daily-windows-terminal-integration-builder.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/daily-windows-terminal-integration-builder.lock.yml b/.github/workflows/daily-windows-terminal-integration-builder.lock.yml index a46cda76ca7..a9011c682ea 100644 --- a/.github/workflows/daily-windows-terminal-integration-builder.lock.yml +++ b/.github/workflows/daily-windows-terminal-integration-builder.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"4f75e4831dc14511eef55291db11576f49e5de6d2aafb0cb54c00455650293e2","body_hash":"d49fc11800684cdf6079cee41b153988bfdf3b4fa108409f6351dcf886b37be4","strict":true,"agent_id":"copilot","engine_versions":{"copilot":"1.0.60"}} +# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"4f75e4831dc14511eef55291db11576f49e5de6d2aafb0cb54c00455650293e2","body_hash":"c5f7443a1ee51644b7a0f5e066fa5990afd02143e4a93fc5081203929fea43ae","strict":true,"agent_id":"copilot","engine_versions":{"copilot":"1.0.60"}} # gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"df4cb1c069e1874edd31b4311f1884172cec0e10","version":"v6.0.3"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.68"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.68"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.68"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.68"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.25","digest":"sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.25@sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa"},{"image":"ghcr.io/github/github-mcp-server:v1.1.2","digest":"sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c","pinned_image":"ghcr.io/github/github-mcp-server:v1.1.2@sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c"},{"image":"node:lts-alpine","digest":"sha256:2bdb65ed1dab192432bc31c95f94155ca5ad7fc1392fb7eb7526ab682fa5bf14","pinned_image":"node:lts-alpine@sha256:2bdb65ed1dab192432bc31c95f94155ca5ad7fc1392fb7eb7526ab682fa5bf14"}]} # ___ _ _ # / _ \ | | (_) diff --git a/.github/workflows/daily-windows-terminal-integration-builder.md b/.github/workflows/daily-windows-terminal-integration-builder.md index 3d886cdac99..4e3c8f76762 100644 --- a/.github/workflows/daily-windows-terminal-integration-builder.md +++ b/.github/workflows/daily-windows-terminal-integration-builder.md @@ -46,7 +46,7 @@ If it is missing, create it. If it exists, improve it only when needed to match - no-profile shells (`pwsh -NoProfile`, `powershell -NoProfile`) and default profile shells - PATH order and PATH shadowing quirks (workspace-first, toolcache-first, duplicate entries) - PATHEXT and extension resolution behavior for `.exe` invocation from different shells - - paths with spaces/parentheses and mixed slash styles (`C:\path with spaces\...` and `/` vs `\`) + - paths with spaces/parentheses and mixed slash styles (`C:\\path with spaces\\...` and `/` vs `\\`) - unicode and non-ASCII working directories/user-profile-like paths - environment toggles commonly used by developers (`NO_COLOR`, `TERM`, `CI`, and empty/minimal env subsets) - command invocation variants (`gh-aw.exe help`, `gh-aw.exe --help`, subcommand help, and unknown-command failure paths)