diff --git a/CHANGELOG.md b/CHANGELOG.md index eed40968c9..8d5e5535e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## [0.16.2.1] - 2026-04-10 + +### Fixed +- **`./setup` no longer prints a Node server bundle build error.** When `/pair-agent` landed, it added `@ngrok/ngrok` for remote tunneling. Ngrok ships prebuilt native binaries (darwin-universal, darwin-arm64, win32-x64). During the Windows Node.js fallback bundle step, bun tried to inline all of those `.node` binaries as separate asset files and failed with "cannot write multiple output files without an output directory." The rest of setup still worked, but every install printed the ugly error. Now `@ngrok/ngrok` is marked as external, same way we already handle playwright. Windows Node users who want `/pair-agent` tunneling install `@ngrok/ngrok` separately, same as playwright. +- **README skill lists are consistent and complete.** The install command block and the CLAUDE.md example block now list the same 34 skills in the same order. Added `/pair-agent` to the install block (was missing), added `/plan-devex-review` and `/devex-review` to the CLAUDE.md example block (were missing), and swapped the legacy `/connect-chrome` reference for the canonical `/open-gstack-browser`. If you paste either block into a new project's CLAUDE.md, you now get every skill that `./setup` actually installs. + +### For contributors +- Captured a follow-up TODO: `/checkpoint` and `/health` exist on disk and get registered by `./setup`, but are still missing from the README in three places (install block, CLAUDE.md example, skill table). Left for a narrow-scope follow-up PR since the fix requires new table rows, not just list entries. + ## [0.16.2.0] - 2026-04-09 ### Added diff --git a/README.md b/README.md index 71c63cf5cf..b143ae92cc 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ Fork it. Improve it. Make it yours. And if you want to hate on free open source Open Claude Code and paste this. Claude does the rest. -> Install gstack: run **`git clone --single-branch --depth 1 https://github.com/garrytan/gstack.git ~/.claude/skills/gstack && cd ~/.claude/skills/gstack && ./setup`** then add a "gstack" section to CLAUDE.md that says to use the /browse skill from gstack for all web browsing, never use mcp\_\_claude-in-chrome\_\_\* tools, and lists the available skills: /office-hours, /plan-ceo-review, /plan-eng-review, /plan-design-review, /design-consultation, /design-shotgun, /design-html, /review, /ship, /land-and-deploy, /canary, /benchmark, /browse, /connect-chrome, /qa, /qa-only, /design-review, /setup-browser-cookies, /setup-deploy, /retro, /investigate, /document-release, /codex, /cso, /autoplan, /plan-devex-review, /devex-review, /careful, /freeze, /guard, /unfreeze, /gstack-upgrade, /learn. Then ask the user if they also want to add gstack to the current project so teammates get it. +> Install gstack: run **`git clone --single-branch --depth 1 https://github.com/garrytan/gstack.git ~/.claude/skills/gstack && cd ~/.claude/skills/gstack && ./setup`** then add a "gstack" section to CLAUDE.md that says to use the /browse skill from gstack for all web browsing, never use mcp\_\_claude-in-chrome\_\_\* tools, and lists the available skills: /office-hours, /plan-ceo-review, /plan-eng-review, /plan-design-review, /design-consultation, /design-shotgun, /design-html, /review, /ship, /land-and-deploy, /canary, /benchmark, /browse, /open-gstack-browser, /qa, /qa-only, /design-review, /setup-browser-cookies, /setup-deploy, /retro, /investigate, /document-release, /codex, /cso, /autoplan, /plan-devex-review, /devex-review, /pair-agent, /careful, /freeze, /guard, /unfreeze, /gstack-upgrade, /learn. Then ask the user if they also want to add gstack to the current project so teammates get it. ### Step 2: Team mode — auto-update for shared repos (recommended) @@ -397,7 +397,8 @@ Available skills: /office-hours, /plan-ceo-review, /plan-eng-review, /plan-desig /design-consultation, /design-shotgun, /design-html, /review, /ship, /land-and-deploy, /canary, /benchmark, /browse, /open-gstack-browser, /qa, /qa-only, /design-review, /setup-browser-cookies, /setup-deploy, /retro, /investigate, /document-release, /codex, -/cso, /autoplan, /pair-agent, /careful, /freeze, /guard, /unfreeze, /gstack-upgrade, /learn. +/cso, /autoplan, /plan-devex-review, /devex-review, /pair-agent, /careful, /freeze, +/guard, /unfreeze, /gstack-upgrade, /learn. ``` ## License diff --git a/TODOS.md b/TODOS.md index 0e3ac93279..52495d4cbe 100644 --- a/TODOS.md +++ b/TODOS.md @@ -1,5 +1,19 @@ # TODOS +## Documentation + +### Add /checkpoint and /health to README + +**What:** Add `/checkpoint` and `/health` to the README in three places: (1) the install command block (line ~49), (2) the CLAUDE.md example "Available skills" block (line ~396), and (3) the big skill table (around line ~164). Two new table rows describing what each does, using the existing skill table voice. + +**Why:** Both skills are real, user-facing, live on disk at `checkpoint/SKILL.md` and `health/SKILL.md`, and are registered by `./setup` on every install (they show up in `~/.claude/skills/`). But the README doesn't mention either of them anywhere — so users who paste the install blurb into their CLAUDE.md end up with a skill list that's missing two working skills. New users never discover them. + +**Context:** Found while aligning the two README skill list blocks in branch `fix/ngrok-external-in-node-bundle`. That branch fixed the drift between the two lists (added `/pair-agent`, `/plan-devex-review`, `/devex-review`, dropped legacy `/connect-chrome`) but kept scope narrow by NOT adding `/checkpoint` and `/health` because they need table rows too, not just list entries. Frontmatter is already good — descriptions at `checkpoint/SKILL.md:1-13` and `health/SKILL.md:1-10` explain trigger phrases and what each skill does. + +**Effort:** S (human: ~30 min / CC: ~5 min) +**Priority:** P2 +**Depends on:** — + ## Sidebar Security ### ML Prompt Injection Classifier diff --git a/VERSION b/VERSION index 73c8950921..56dacb4bc8 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.16.2.0 +0.16.2.1 diff --git a/browse/scripts/build-node-server.sh b/browse/scripts/build-node-server.sh index 539e391c81..104d6a2fed 100755 --- a/browse/scripts/build-node-server.sh +++ b/browse/scripts/build-node-server.sh @@ -14,12 +14,21 @@ DIST_DIR="$GSTACK_DIR/browse/dist" echo "Building Node-compatible server bundle..." # Step 1: Transpile server.ts to a single .mjs bundle (externalize runtime deps) +# +# @ngrok/ngrok must be external: it ships prebuilt native .node binaries +# (darwin-universal, darwin-arm64, win32-x64, etc.) which bun cannot inline +# into a single JS bundle. Without --external, bun tries to emit the native +# binaries as separate asset files and fails with +# "cannot write multiple output files without an output directory". +# Pair-agent users on Windows Node runtime install @ngrok/ngrok separately, +# matching how we already handle playwright and playwright-core. bun build "$SRC_DIR/server.ts" \ --target=node \ --outfile "$DIST_DIR/server-node.mjs" \ --external playwright \ --external playwright-core \ --external diff \ + --external "@ngrok/ngrok" \ --external "bun:sqlite" # Step 2: Post-process