* fix: Standardize Docker image naming and improve environment variable handling
- Standardize on 'claudecode:latest' image name across the codebase
- Update build script to use claudecode:latest instead of claude-code-runner:latest
- Fix health check to use CLAUDE_CONTAINER_IMAGE env var dynamically
- Improve environment variable handling for git configuration
- Pass BOT_EMAIL and BOT_USERNAME to containers
- Entrypoint scripts already use these with appropriate defaults
- Add comprehensive environment variables documentation
- Document all 90+ environment variables used in the project
- Identify hard-coded values that could be made configurable
- Update .env.example with missing variables
This ensures consistency in Docker image naming and allows proper git
configuration in containers using the configured bot identity.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: Add BOT_EMAIL to docker-compose.yml
- Add BOT_EMAIL environment variable to docker-compose.yml
- Ensures git configuration in containers uses proper email address
- Complements the previous changes for environment variable handling
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: Use BOT_USERNAME environment variable in prompt creation
- Fix undefined BOT_USERNAME reference in createPrompt function
- Change prompt to use actual bot username instead of hardcoded "Claude"
- Makes the prompt more accurate: "You are @MCPClaude" instead of "You are Claude"
This fixes the PR review functionality that was broken due to the
undefined variable reference.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat: Add verbose and stream-json output to Claude CLI for better debugging
- Add --verbose flag to see detailed Claude processing
- Add --output-format stream-json for structured output
- Helps diagnose issues with PR review and other operations
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: Use colon syntax for allowedTools in PR review to match auto-tagging
- Change from space syntax Bash(gh *) to colon syntax Bash(gh:*)
- This matches the working syntax used in auto-tagging
- Should fix the permission issues preventing PR reviews from posting
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat: Add Claude Code timeout configuration for unattended mode
- Add BASH_DEFAULT_TIMEOUT_MS (10 minutes) and BASH_MAX_TIMEOUT_MS (20 minutes)
- Pass timeout environment variables to Claude container
- Document new timeout settings in .env.example and environment-variables.md
- Better defaults for webhook mode where builds/tests may take longer
These timeouts are more suitable for unattended PR reviews and other
operations that might involve long-running commands like builds or tests.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
* feat: Improve Claude authentication setup experience
- Replace 'claude login' with 'claude --dangerously-skip-permissions'
- Fix path references from /auth-output to actual authentication location
- Simplify user instructions to be more accessible
- Add automatic authentication execution (no manual typing required)
- Add comprehensive validation for authentication success
- Check file existence, size, and timestamp
- Provide clear error messages for different failure scenarios
- Remove deprecated setup-claude-auth.sh script
- Update CLAUDE.md to reference correct build script path
- Exclude todos directory from authentication capture
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* remove self-hosted runners from ci
---------
Co-authored-by: Claude <noreply@anthropic.com>
This comprehensive update adds support for Claude Max subscription authentication
and improves the overall authentication system with multiple methods:
🔐 Claude Authentication Enhancements:
- Add setup container method for Claude Max/20x subscription usage ($20-200/month)
- Create interactive authentication script (setup-claude-interactive.sh)
- Add authentication testing utility (test-claude-auth.sh)
- Support three authentication methods: Setup Container, API Key, AWS Bedrock
- Comprehensive authentication documentation
📁 Directory Configuration:
- Add CLAUDE_HUB_DIR environment variable (default: ~/.claude-hub)
- Update .gitignore to use .claude-hub/ instead of hardcoded paths
- Consistent environment variable usage across all scripts
🐙 GitHub Token Support:
- Add fine-grained GitHub token support (github_pat_) alongside classic tokens (ghp_)
- Update token validation in claudeService and githubService
- Enhanced token detection and authentication flow
📖 Documentation & Guides:
- Add complete Claude Authentication Guide with all three methods
- Add Setup Container Deep Dive documentation
- Update CLAUDE.md with quick start authentication section
- Comprehensive cost comparison and use case recommendations
🐳 Container & Docker Improvements:
- Update Dockerfile.claudecode with proper entrypoint script copying
- Add Dockerfile.claude-setup for interactive authentication
- Update docker-compose.yml with new port (3003) and environment variables
- Enhanced container volume mounting for authentication
🔧 Infrastructure Updates:
- Add TRUST_PROXY configuration for reverse proxy environments
- Update port configuration from 3002 to 3003
- Enhanced environment variable documentation in .env.example
- Debug utilities for troubleshooting authentication issues
This update enables Claude Max subscribers to use their existing subscriptions
for automation, potentially saving thousands in API costs while maintaining
full production capabilities.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove all Discord chatbot implementation files
- Remove generic chatbot provider infrastructure
- Update docker-compose.yml to use environment variables instead of Docker secrets
- Keep dual secret support (files take priority, env vars as fallback)
- Document secret configuration options in .env.example
- Clean up related tests and documentation
- Prepare codebase for CLI-first approach with future plugin architecture
This simplifies the codebase by removing incomplete chatbot functionality
while maintaining flexible secret management for both development and production.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix unused crypto import in DiscordProvider by using destructured import
- Add rate limiting to chatbot webhook endpoints using express-rate-limit
- Remove Slack/Nextcloud placeholder implementations to focus on Discord only
- Update tests to handle mocking issues and environment variables
- Clean up documentation to reflect Discord-only implementation
- Simplify architecture while maintaining extensibility for future platforms
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add comprehensive chatbot provider architecture supporting Discord webhooks with extensible design for future Slack and Nextcloud integration. Includes dependency injection, signature verification, comprehensive test suite, and full documentation.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>