Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down Expand Up @@ -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
Expand Down
14 changes: 14 additions & 0 deletions TODOS.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.16.2.0
0.16.2.1
9 changes: 9 additions & 0 deletions browse/scripts/build-node-server.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down