Commit 0668240
committed
fix(setup): Playwright Chromium failure becomes best-effort warn, not exit 1
Replaces both `exit 1` paths in the Playwright install/verify block with a
$_PW_FAIL_REASON accumulator that prints a named warning to stderr and
returns control. Previously a Chromium download failure (network blip,
locked-down corporate machine, missing Node.js on Windows) would abort
./setup mid-run with no skills registered, no hooks installed, no
migrations applied — and a re-run would start over from the top.
Now the failure only disables browser-driven features (/qa,
/design-review, make-pdf, sidebar, /pair-agent); skills, hooks, and
migrations land normally. The warning names which sub-step failed
(chromium-install / windows-no-node / windows-node-modules /
post-install-launch) so users and bug reports can be specific, and
tells the user to re-run ./setup to retry just this step.
Tests (5) exercise the actual block from setup with stubbed
ensure_playwright_browser and bunx, simulate install + post-install
failures, and assert the script exits 0 with the named warning. One
side-by-side test inlines the OLD bug shape and confirms it returned
non-zero, so the exit-code difference is proven, not just asserted.
Coordinates with garrytan#1838 (pins Playwright install version): both touch the
same code block, so whichever lands first needs the other to rebase. The
changes are complementary — garrytan#1838 fixes which Chromium build gets
installed; this PR fixes what happens when the install fails.
Carved out from garrytan#1883 per @jbetala7's review request.1 parent d8c91c6 commit 0668240
5 files changed
Lines changed: 556 additions & 138 deletions
0 commit comments