Add optional --cache-only flag to allow SessionStart events to cache the
transcript path without sending Slack notifications.
Changes:
- Added --cache-only command-line argument
- SessionStart always caches transcript path
- With --cache-only: exits after caching (no notification)
- Without --cache-only: continues to send SessionStart notification
- Updated settings.json to use --cache-only by default
- Removed --event-emoji from Stop/SubagentStop (not needed)
- Updated documentation with SessionStart example and flag description
Benefits:
- Flexible control over SessionStart notifications
- Maintains workaround for stale transcript path bug
- Users can opt-in to SessionStart notifications by removing flag
- Cleaner configuration (removed redundant emoji flags)
Fix Slack notifications to properly display bold text and handle resumed
session transcript path bug.
Changes:
- Added convert_markdown_to_slack() to convert **bold** to *bold*
- Stop/SubagentStop now convert markdown before sending to Slack
- Added SessionStart handler to cache current transcript_path
- Reads cached path first to work around stale path in resumed sessions
- Added retry logic with delays to handle transcript write timing
- Registered hook for SessionStart events in settings.json
- Documented workaround in README and slack-notifications.md
Technical details:
- Caches transcript path to logs/.current-transcript on SessionStart
- Falls back to provided path if cache doesn't exist
- Retries up to 3 times with 0.3s delays for timing issues
- Converts standard markdown to Slack format before sending
Workaround for: https://github.com/anthropics/claude-code/issues/8069
Enhance Slack notifications to include the complete assistant response for Stop and SubagentStop events, providing full context of what Claude accomplished.
Changes:
- Added get_last_assistant_message() to extract assistant responses from transcript
- Stop events now include the last assistant message (up to 3000 chars)
- SubagentStop events now include the last assistant message with task description
- Messages automatically truncate with indicator if exceeding 3000 chars
- Graceful fallback to generic message if transcript unavailable
- Fixed missing --event-emoji ✅ flag in settings.json Stop hook
Example notification:
"✅ Task Completed
Perfect! ✅ Commit created successfully:
Commit: de50fb9
Message: ✨ feat: add Slack notification hook
Changes: 6 files changed, 617 insertions(+)"
Documentation updated to reflect new full-context feature.
Add comprehensive Slack integration that sends direct messages for Claude Code lifecycle events including notifications, task completions, and subagent completions.
Features:
- Universal event support (Notification, Stop, SubagentStop, etc.)
- Intelligent message formatting based on event type
- Custom emoji support via --event-emoji flag
- Comprehensive error handling and logging
- Dry-run mode for testing
Implementation:
- slack_notification.py: Main hook using slack_sdk
- docs/slack-notifications.md: Complete setup and usage guide
- .env.example: Environment variable template
- Updated settings.json with Slack hooks for key events
- Updated .gitignore to exclude .env files
- Updated README.md to document new hook
Requires SLACK_BOT_TOKEN and SLACK_USER_ID environment variables.
Add comprehensive deep research agent suite with 5 specialized agents (academic-researcher, data-analyst, research-coordinator, technical-researcher, web-researcher) for multi-faceted research tasks.
Add new commands:
- git-commit: Smart commit creation with emoji conventional format
- frontend-mode: Load ultracite rules for JS/TS development
- security-scan: Run security scans on project files
Add ultracite.md documentation with comprehensive frontend development rules covering accessibility, JSX/React, TypeScript, and code quality standards.
Update existing agents with improved proactive usage patterns and tool configurations.
Update hooks and settings to support new functionality.