Files
hyperframes/.github/workflows/windows-window-probe.yml
Miguel Ángel 6cf4b56697 fix(engine): a render on Windows opens no console windows (#6613)
* ci(windows): probe that a render opens no visible window

* ci(windows): the probe names what opened each window

* ci(windows): the probe spawns each binary alone, with and without detached

* ci(windows): the probe logs the processes started during the render

* ci(windows): the probe also spawns Chrome one consoleless hop down

* ci(windows): the probe logs each child started without windowsHide

* ci(windows): the probe logs every child process with its windowsHide and detached

* fix(engine): Chrome keeps the CLI's console on Windows, so a render opens no window

* fix(cli): every child the CLI starts on Windows is hidden unless it opts out

* ci(windows): the probe bisects Chrome's flags and keeps each command's output

* ci(windows): the probe names the Chrome process behind each window

* ci(windows): the probe loads a page in Chrome directly and one hidden hop down

* ci(windows): the probe prints the Chrome main command line and renders with the reporter's flags

* ci(windows): the probe narrows the CLI's Chrome arguments to the ones that open a window

* ci(windows): the probe launches the CLI's Chrome arguments one hidden hop down

* ci(windows): the probe launches Chrome through the engine's browser pool

* ci(windows): the probe varies what the engine passes to Puppeteer

* fix(engine): renders on Windows launch Chrome with a Puppeteer that keeps it attached

* refactor(cli): hideChildConsoles copies its arguments and keeps one comment line
2026-10-28 07:48:40 +00:00

57 lines
2.1 KiB
YAML

name: Windows window probe
permissions:
contents: read
env:
HYPERFRAMES_NO_TELEMETRY: "1"
on:
pull_request:
paths:
- .github/workflows/windows-window-probe.yml
- .github/scripts/windows-window-probe.ps1
workflow_dispatch:
jobs:
probe:
name: Agent commands open no window on windows-latest
runs-on: windows-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
- uses: ./.github/actions/install-ffmpeg-windows
- uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: 22
- run: bun install --frozen-lockfile --linker=hoisted
shell: pwsh
- name: Build the CLI
shell: pwsh
run: |
bun run --filter '@hyperframes/{parsers,lint,studio-server}' build
bun run --cwd packages/core build
bun run --filter @hyperframes/player build
bun run --filter @hyperframes/studio build
bun run --filter @hyperframes/inspector build
bun run --filter @hyperframes/cli build
- name: Scaffold the canary
shell: pwsh
env:
HYPERFRAMES_SKIP_SKILLS: "1"
run: |
$dir = "$env:RUNNER_TEMP\probe"
New-Item -ItemType Directory -Force -Path $dir | Out-Null
Set-Location $dir
node "$env:GITHUB_WORKSPACE\packages\cli\dist\cli.js" init canary --example blank --non-interactive --skip-skills
Copy-Item "$env:GITHUB_WORKSPACE\.github\workflows\fixtures\windows-canary.html" "canary\index.html" -Force
- name: Install Chrome before watching
shell: pwsh
run: |
Set-Location "$env:RUNNER_TEMP\probe\canary"
node "$env:GITHUB_WORKSPACE\packages\cli\dist\cli.js" browser ensure
- name: Run the commands while watching for windows
shell: pwsh
run: .github/scripts/windows-window-probe.ps1 -Cli "$env:GITHUB_WORKSPACE\packages\cli\dist\cli.js" -Project "$env:RUNNER_TEMP\probe\canary"