From b9c3937cd0ccd636ea34964f008c55a45176219d Mon Sep 17 00:00:00 2001 From: Bastien Chanot Date: Tue, 23 Jun 2026 16:23:52 +0200 Subject: [PATCH] =?UTF-8?q?revert(install):=20drop=20Playwright=20host-pla?= =?UTF-8?q?tform=20override=20=E2=80=94=20it=20hangs=20on=2026.04?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The PLAYWRIGHT_HOST_PLATFORM_OVERRIDE=ubuntu24.04-x64 pin (211c7d4) made Playwright 1.58.2 stop erroring and instead download a Chrome-for-Testing fallback build — but that download reaches 100% and then HANGS at extraction on Ubuntu 26.04 (reproduced on a real machine + here: chrome binary never materializes, no headless-shell download starts). Net effect: the override turned a 0.5s fast-fail into an indefinite hang that blocks `make install` / `make plugin` (user had to Ctrl+C). Reverting restores the original behavior: gstack's ./setup fast-fails the browser install (non-fatal — gstack is OFF by default, browser only needed for /browse, /qa, screenshots) and the install completes. Replaced the code with a NOTE explaining the dead end. Real fix is upstream: gstack bumping Playwright to a version that supports the OS. See BLK-008. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_01UyNYwD4UccVw9ZCFZyJX55 --- install-plugins.sh | 44 ++++++++------------------------------------ 1 file changed, 8 insertions(+), 36 deletions(-) diff --git a/install-plugins.sh b/install-plugins.sh index 22afff3..d39a175 100644 --- a/install-plugins.sh +++ b/install-plugins.sh @@ -258,27 +258,6 @@ fi echo "" -# Playwright (used by gstack's browser) hardcodes a list of supported Linux -# builds (ubuntu20.04/22.04/24.04). On a newer Ubuntu it aborts with -# "Playwright does not support chromium on ubuntuXX.04-x64". Pinning the host -# platform to the latest supported build makes it download a compatible -# Chrome-for-Testing binary instead. Echoes the override value, or nothing -# when the running distro is natively supported. -playwright_platform_override() { - [ -r /etc/os-release ] || return 0 - local ID="" VERSION_ID="" arch # shadow globals so sourcing can't leak - # shellcheck disable=SC1091 - . /etc/os-release 2>/dev/null - [ "${ID:-}" = "ubuntu" ] && [ -n "${VERSION_ID:-}" ] || return 0 - # Only when newer than 24.04 (the latest build Playwright 1.58 ships). - [ "$(printf '%s\n24.04\n' "$VERSION_ID" | sort -V | tail -1)" != "24.04" ] || return 0 - case "$(uname -m)" in - aarch64|arm64) arch="arm64" ;; - *) arch="x64" ;; - esac - printf 'ubuntu24.04-%s' "$arch" -} - # ============================================================ # STEP 2 — GSTACK SUBMODULE # ============================================================ @@ -322,14 +301,14 @@ if [ -d "$GSTACK_DIR" ]; then ok "bun $(bun --version)" fi - # Pin Playwright's host platform on Ubuntu newer than 24.04 so gstack's - # ./setup can download a working Chromium (exported into its subshell). - PW_OVERRIDE="$(playwright_platform_override)" - if [ -n "$PW_OVERRIDE" ]; then - export PLAYWRIGHT_HOST_PLATFORM_OVERRIDE="$PW_OVERRIDE" - info "Newer Ubuntu detected — pinning Playwright to $PW_OVERRIDE (browser fallback build)" - fi - + # NOTE: on Ubuntu newer than 24.04, gstack's ./setup can't install its + # Playwright browser — Playwright 1.58 has no build for it and fails fast + # ("does not support chromium on ubuntuXX.04"). That's non-fatal (gstack is + # OFF by default; the browser is only needed for /browse, /qa, screenshots). + # The PLAYWRIGHT_HOST_PLATFORM_OVERRIDE=ubuntu24.04 workaround was tried and + # reverted: it makes Playwright download a fallback build that then HANGS at + # extraction on 26.04, blocking the whole install. Real fix is upstream — + # gstack bumping Playwright to a version that supports the OS. See BLK-008. info "Running GStack setup..." if [ -x "$GSTACK_DIR/setup" ]; then if (cd "$GSTACK_DIR" && ./setup); then @@ -730,13 +709,6 @@ CLAUDE_LINES=( 'export CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1' ) -# On Ubuntu newer than what Playwright supports, persist the host-platform -# override so gstack's browser launches at runtime (not just at install). -PW_OVERRIDE="$(playwright_platform_override)" -if [ -n "$PW_OVERRIDE" ]; then - CLAUDE_LINES+=("export PLAYWRIGHT_HOST_PLATFORM_OVERRIDE=$PW_OVERRIDE") -fi - # Clean up old CLAUDE_EFFORT env var if present (replaced by alias) if grep -qF 'export CLAUDE_EFFORT=max' "$SHELL_PROFILE" 2>/dev/null; then sed -i '/export CLAUDE_EFFORT=max/d' "$SHELL_PROFILE"