forked from bchanot/claude
feat(gstack): share the Playwright bump, report the browser cache
Extract gstack_bump_playwright_if_unsupported from install-plugins.sh into lib/gstack-playwright.sh and call it from update-all.sh too. A submodule update no longer leaves the OS-support bump unapplied until the next `make plugin` — that was BDR-029's open caveat. The update helper never touches the submodule working tree: on failure it prints git's own message and points at `make plugin`, and returns non-zero so the existing `else warn` arm still handles it. Add a read-only `Playwright browsers` section to doctor.sh: cache size, which registered install requires each revision, and counts of unreferenced directories and broken links. No pruning is written — Playwright's own `install` already unions the required set across every registered install, and all three installs here are live (rev 1228 for gstack + gsd-pi 1.61, rev 1243 for gsd-pi 1.63). Carries two latent-bug fixes from the moved code: the ostag capture exited 1 on every non-Ubuntu host and aborted the caller under inherited errexit, and the bun calls had no timeout.
This commit is contained in:
+5
-31
@@ -26,8 +26,10 @@ else
|
||||
fi
|
||||
|
||||
# Load shared detection library
|
||||
# shellcheck source=lib/detect-plugins.sh
|
||||
# shellcheck source=lib/detect-plugins.sh disable=SC1091
|
||||
source "$REPO/lib/detect-plugins.sh"
|
||||
# shellcheck source=lib/gstack-playwright.sh disable=SC1091
|
||||
source "$REPO/lib/gstack-playwright.sh"
|
||||
|
||||
# ── Guard hand-curated config against installer drift ────────
|
||||
# graphify's installer (Step 7) rewrites CLAUDE.md + .claude/settings.json
|
||||
@@ -291,35 +293,6 @@ fi
|
||||
|
||||
echo ""
|
||||
|
||||
# gstack pins Playwright (1.58.x) which only ships browser builds for
|
||||
# ubuntu<=24.04. On a newer distro the browser install fails ("does not
|
||||
# support chromium on ubuntuXX.04"). Bump gstack's Playwright to a version
|
||||
# that supports this OS so ./setup builds the browse binary against it and
|
||||
# installs a native browser. Fires only when the pinned version genuinely
|
||||
# lacks support — idempotent across runs. Edits the submodule locally (goes
|
||||
# dirty); a `git submodule update` resets it and the next install re-applies.
|
||||
# See BLK-008 / LRN-040.
|
||||
gstack_bump_playwright_if_unsupported() {
|
||||
[ -d "$GSTACK_DIR" ] && [ -r /etc/os-release ] || return 0
|
||||
local ostag pwlib
|
||||
# shellcheck disable=SC1091
|
||||
ostag="$(. /etc/os-release 2>/dev/null; [ "${ID:-}" = ubuntu ] && printf 'ubuntu%s' "${VERSION_ID:-}")"
|
||||
[ -n "$ostag" ] || return 0 # only the known Ubuntu case
|
||||
pwlib="$GSTACK_DIR/node_modules/playwright-core/lib"
|
||||
# populate node_modules at the pinned version so we can read its support list
|
||||
( cd "$GSTACK_DIR" && { bun install --frozen-lockfile >/dev/null 2>&1 || bun install >/dev/null 2>&1; } ) || return 0
|
||||
if grep -rqs "$ostag" "$pwlib" 2>/dev/null; then
|
||||
return 0 # pinned Playwright already supports this OS
|
||||
fi
|
||||
info "gstack's Playwright lacks $ostag support — bumping to latest (local submodule edit)..."
|
||||
( cd "$GSTACK_DIR" && bun add playwright@latest >/dev/null 2>&1 )
|
||||
if grep -rqs "$ostag" "$pwlib" 2>/dev/null; then
|
||||
ok "gstack Playwright bumped — now supports $ostag (browse binary rebuilt by ./setup)"
|
||||
else
|
||||
warn "Playwright bump didn't add $ostag support — gstack browser may stay unavailable"
|
||||
fi
|
||||
}
|
||||
|
||||
# ============================================================
|
||||
# STEP 2 — GSTACK SUBMODULE
|
||||
# ============================================================
|
||||
@@ -367,7 +340,8 @@ if [ -d "$GSTACK_DIR" ]; then
|
||||
# BEFORE ./setup so its frozen-lockfile install picks up the new version and
|
||||
# the browse binary is rebuilt against it (avoids the "does not support
|
||||
# chromium" fail). Non-fatal if it can't — gstack is OFF by default.
|
||||
gstack_bump_playwright_if_unsupported
|
||||
# See BLK-008 / LRN-040 / BDR-029; logic lives in lib/gstack-playwright.sh.
|
||||
gstack_bump_playwright_if_unsupported "$GSTACK_DIR"
|
||||
|
||||
info "Running GStack setup..."
|
||||
_gstack_setup_ok=0
|
||||
|
||||
Reference in New Issue
Block a user