Documentation navigation

Full-screen modal and resize: bottom#

Goal: bottom 0.14.9 filters to one harness-owned marker process, opens and closes help, redraws at 80x24 and 120x40, then exits 0. The binary/archive identities are recorded in the corpus manifest .

Setup and pass#

Place the verified Windows binary at .tools\recipes\bottom\btm.exe. Build the deterministic helper under the exact searchable filename, start it hidden, and retain its process object:

New-Item -ItemType Directory -Force .tools\recipes | Out-Null
go build -o .tools\recipes\PLAYTESTR-RS01X.exe ./cmd/fixture
$marker = Start-Process -FilePath (Resolve-Path .tools\recipes\PLAYTESTR-RS01X.exe) -ArgumentList hang -WindowStyle Hidden -PassThru
go run ./cmd/playtestr test examples/recipes/full-screen.json
powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts/recipes/check-process.ps1 -ProcessID $marker.Id -ExpectedPath .tools\recipes\PLAYTESTR-RS01X.exe

The sequence proves the modal appeared before asserting disappearance. Each resize is immediately followed by wait_for_redraw and a new positive marker; an old pre-resize screen is not accepted as proof.

Intentional failure and recovery#

Stop the exact marker after verifying its executable path, run the spec and require an assertion timeout at the marker lookup. Start a fresh exact helper and rerun the unchanged spec and process oracle. An unrelated launch error, crash or timeout at another step is not the intended control.

Cleanup: before stopping the marker, resolve its live PID to the expected helper path. Stop only that PID and remove only the owned .tools\recipes files. On Unix use the matching pinned bottom binary and helper name; historical WSL evidence does not constitute a current native Linux or macOS claim.