- Popup-based extension that works on GitHub commit pages
- Shows badge with note count when commits have notes
- Displays all available git notes refs in tabbed interface
- Supports cnotes format with special formatting
- Works with any public GitHub repository (no auth required)
- Includes caching to minimize API calls (60 req/hour limit)
- Create examples/pre-push-hook.sh with working pre-push hook
- Add documentation to README about automatic notes pushing
- Hook prevents infinite recursion with environment variable flag
- Test with latest stable Go version
- Run tests with race detector
- Check go mod tidy
- Run go vet and golangci-lint
- Add test status badge to README
- Block installation when executable contains 'go-build' in path
- Clean up .claude/settings.json to only include properly installed cnotes
- Remove changelog line from README as requested
- Add 2-second timeout for stdin input to prevent hanging
- Update README with pronunciation guide and go install instructions
- Fix command references in documentation from ./cnotes to cnotes
- Update settings.json to use /Users/jason/go/bin/cnotes run
- Improve generated by message formatting in notes output
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
BREAKING CHANGE: Complete restructure from hooks to cnotes
Major Changes:
- Removed all hook handler code except git commit detection
- Simplified to focused git notes functionality only
- Renamed binary from 'hooks' to 'cnotes'
- Restructured CLI: cnotes (hook handler), cnotes show, cnotes install, etc.
- Updated module path to github.com/imjasonh/cnotes
- Rewrote README and CLAUDE.md for new focused scope
New Command Structure:
- cnotes # Main hook handler (receives Claude Code calls)
- cnotes show # Pretty-print conversation notes
- cnotes install # Configure Claude Code to use cnotes
- cnotes backup # Backup conversation notes
- cnotes restore # Restore notes from backup
- cnotes list # List commits with notes
This creates a much cleaner, focused tool specifically for git conversation notes.
- Added 'hooks notes show [commit]' command that defaults to HEAD
- Formats conversation context in readable Markdown with proper sections
- Shows commit info, session details, tools used, commit context, and conversation excerpt
- Updated documentation to recommend the show command over raw git notes
- Enhanced user experience for viewing conversation context
Usage:
./hooks notes show # Show notes for latest commit
./hooks notes show abc123 # Show notes for specific commit
- Added comprehensive documentation for notes preservation during rebasing/squashing
- Updated CLAUDE.md with backup/restore command examples
- Documented best practices for preserving conversation context during destructive git operations
- Cleaned up test files
All git notes preservation features are now complete and documented.
- Added git notes integration details to CLAUDE.md architecture overview
- Updated README.md to indicate git notes feature is fully implemented and tested
- Added configuration examples and usage instructions
- Documented the conversation context structure and privacy controls
The git notes feature is now production-ready and automatically working for all commits.
Add comprehensive documentation for the git notes functionality:
- Example usage and real-world scenarios
- Commands for viewing conversation context attached to commits
- Configuration options via .claude/notes.json
- Privacy controls and sensitive data filtering
- Team collaboration workflows for sharing git notes
- Complete JSON example showing structured conversation data
Users can now easily understand how to view and configure the
automatic conversation context attachment to their git commits.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add missing hook handlers: Stop, SubagentStop, PreCompact
- Replace all string type casting with proper JSON unmarshaling
- Change ToolUseRequest.Parameters from map[string]interface{} to json.RawMessage
- Update helper methods to use json.Unmarshal directly to typed structs
- Replace speech notifications with simple logging notifications
- Update documentation to reflect all hook events and remove speech references
- Add comprehensive CLAUDE.md with architecture overview and development guidance
All hooks now use type-safe JSON handling without .(string) assertions.
Complete coverage of Claude Code events: PreToolUse, PostToolUse,
UserPromptSubmit, Notification, Stop, SubagentStop, PreCompact.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replaced go-toast with terminal-notifier for better reliability
- Visual notifications now require: brew install terminal-notifier
- Speech notifications continue to work with built-in say command
- Cleaner implementation with no deprecation warnings
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Speaks Claude notifications using the 'say' command
- Handles both permission requests and regular notifications
- Only runs on macOS systems
- Non-blocking execution to avoid delays
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Easy-to-use hook registration system
- Built-in hooks for bash validation, file protection, and logging
- Automatic goimports formatting for modified Go files
- CLI with install/uninstall commands
- Comprehensive documentation and examples
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>