Commit Graph

9 Commits

Author SHA1 Message Date
Santeri Helminen
c033a85e4a fix(hooks): update check now finds VERSION in local project installs (#166)
The update check script always looked for VERSION in ~/.claude/get-shit-done/,
but GSD can be installed locally in ./.claude/get-shit-done/. This caused
false "update available" notifications when using local installations.

Changes:
- Check project directory first, then fall back to global
- Remove unused execSync import
2026-01-19 14:52:36 -06:00
superresistant
3fb6bfbb50 fix(hooks): prevent console window flash on Windows (#167)
On Windows, the detached spawn option creates a visible console window.
Combined with npm (which is a .cmd batch file), this causes a brief
window flash that steals focus from the user's terminal.

- Remove detached: true (not needed, child.unref() handles non-blocking)
- Add windowsHide: true to both spawn() and inner execSync()
2026-01-19 14:50:30 -06:00
Joshua Shanks
99362f1e5f fix: clamp progress bar value to 0-100 range (#176)
Prevents visual glitches if context usage reports unexpected values
outside the expected 0-100 percentage range.
2026-01-19 14:47:49 -06:00
Lex Christopherson
967734df21 fix: Windows hook support via Node.js conversion
- Convert statusline.sh and gsd-check-update.sh to Node.js
- Remove gsd-notify.sh (blocking popups, not true toasts)
- Remove --force-notify and --no-notify flags from installer
- Use `node` command for cross-platform hook execution

Fixes #114

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 22:56:26 -06:00
Lex Christopherson
b0da21ba51 fix(hooks): remove stale STATE.md from notify hook
STATE.md reflects project state, not session state. It persists across
sessions and shows misleading info like "Phase complete" from previous
work. Now only uses session-scoped todo list.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 13:33:51 -06:00
Lex Christopherson
055cc24ec6 fix(hooks): match STATE.md field names in notify hook
The hook was grepping for `current_phase:` and `status:` but STATE.md
uses `Phase:` and `Status:`. Now shows actual phase info instead of
always falling back to "Ready for input".

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 13:29:51 -06:00
Lex Christopherson
35989f20d7 feat(hooks): add cross-platform completion notification hook
Alerts user when Claude stops (task complete, needs input, etc.)
with context about what completed. Works on Mac (osascript alert),
Linux (notify-send/zenity), and Windows (PowerShell MessageBox).

Follows same optional install pattern as statusline:
- Prompts in interactive mode if existing hook detected
- --force-notify to replace existing
- --no-notify to skip installation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 13:02:01 -06:00
Lex Christopherson
7a451e6410 feat(statusline): show update indicator when new GSD version available
Adds SessionStart hook that checks npm in background, caches result.
Statusline shows "⬆ /gsd:update │" when update available.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 12:53:45 -06:00
Lex Christopherson
159925c058 feat: add statusline with context usage, model, and current task
- Install statusline.sh to {claudeDir}/hooks/
- Configure statusLine in settings.json automatically
- Skip if statusline already exists (non-interactive)
- Prompt to keep/replace in interactive mode
- Add --force-statusline flag to override

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 07:12:11 -06:00