- 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>
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>
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>
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>
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>
- 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>