Recovery
gstack unsticks Windows installs that a false hook error froze
C:/…, the checker looks for /c/…every TS hook refuseddocs/troubleshooting.mdone-line recoveryOn Windows, gstack's hook check wrongly rejected every TypeScript hook, so setup refused them and auto-update held every release. The troubleshooting page now gives a one-line recovery.
Updater
Auto-update now tests each release with that release’s own hook checker
One checker bug can no longer hold every release. The updater runs the new release's own hook check first, falls back to the installed one, and holds the update with the fix when neither answers.
Git Bash
Three more Git Bash fixes on Windows
C:/… and /c/… as one pathThe hook check now reads both path spellings, and a real syntax error still fails with its own line. /gstack-upgrade and /spec work in Git Bash, and /review and /ship record a start in linked worktrees.
Setup
Setup no longer deletes the checkout it runs from
./setup --host cursorcheckout deletedWith gstack checked out inside Cursor's skills folder, setup for Cursor swapped the runtime root in over it and deleted it. Now setup refuses before writing anything and prints how to move the checkout.
gbrain
Transcript ingest works again on gbrain 0.60 managed brains
On gbrain 0.60 managed brains, every transcript page was refused, because gstack registered each source with no folder. Each source now gets a checkout of its own. A source another host holds stays untouched.
Retro
/retro global counts every Claude Code session in its real repository
- decoded as /hyphenated paths lostCHANGELOG.mddocs/troubleshooting.md/retro global turned every dash in a project folder into a slash, so hyphenated paths broke. It now reads each session's own working folder through git, so worktrees count with their repository. The changelog has the rest.

















