Diff-aware QA mode — /qa on a feature branch auto-analyzes git diff, identifies affected pages/routes, detects the running app on localhost, and tests only what changed. No URL needed.
Project-local browse state — state file, logs, and all server state now live in .gstack/ inside the project root (detected via git rev-parse --show-toplevel). No more /tmp state files.
Shared config module (browse/src/config.ts) — centralizes path resolution for CLI and server, eliminates duplicated port/state logic
Random port selection — server picks a random port 10000-60000 instead of scanning 9400-9409. No more CONDUCTOR_PORT magic offset. No more port collisions across workspaces.
Binary version tracking — state file includes binaryVersion SHA; CLI auto-restarts the server when the binary is rebuilt
Legacy /tmp cleanup — CLI scans for and removes old /tmp/browse-server*.json files, verifying PID ownership before sending signals
Greptile integration — /review and /ship fetch and triage Greptile bot comments; /retro tracks Greptile batting average across weeks
Local dev mode — bin/dev-setup symlinks skills from the repo for in-place development; bin/dev-teardown restores global install
help command — agents can self-discover all commands and snapshot flags
Version-aware find-browse with META signal protocol — detects stale binaries and prompts agents to update
browse/dist/find-browse compiled binary with git SHA comparison against origin/main (4hr cached)
.version file written at build time for binary version tracking
Route-level tests for cookie picker (13 tests) and find-browse version check (10 tests)
Config resolution tests (14 tests) covering git root detection, BROWSE_STATE_FILE override, ensureStateDir, readVersionHash, resolveServerScript, and version mismatch detection
Browser interaction guidance in CLAUDE.md — prevents Claude from using mcp__claude-in-chrome__* tools
CONTRIBUTING.md with quick start, dev mode explanation, and instructions for testing branches in other repos