Commit Graph

9 Commits

Author SHA1 Message Date
JessyTsui b14f95d821
Telegram&Line support (#17)
* feat: Add LINE and Telegram messaging support

This major enhancement extends Claude Code Remote with multi-platform messaging support:

## 🚀 New Features

### LINE Messaging Support
- LINE Bot API integration with token-based commands
- Secure webhook handler with signature verification
- Session management with 24-hour expiration
- Support for both individual and group chats
- User/Group ID whitelist security

### Telegram Bot Support
- Telegram Bot API with interactive buttons
- Slash command support (/cmd TOKEN command)
- Callback query handling for better UX
- Group and private chat support
- Chat ID-based authorization

### Multi-Platform Architecture
- Unified notification system supporting all platforms
- Platform-agnostic session management
- Configurable channel enabling/disabling
- Parallel webhook server support

## 🛠️ Technical Implementation

### Core Components
- `src/channels/line/` - LINE messaging implementation
- `src/channels/telegram/` - Telegram bot implementation
- `src/utils/controller-injector.js` - Command injection utility
- Multi-platform webhook servers with Express.js

### Configuration & Documentation
- Updated `.env.example` with all platform options
- Comprehensive setup guides for each platform
- Testing guide with ngrok instructions
- Updated README with multi-platform support

### Developer Experience
- npm scripts for easy platform startup
- Unified webhook launcher (`start-all-webhooks.js`)
- Individual platform launchers
- Enhanced error handling and logging

## 🔧 Usage Examples

**Telegram:** `/cmd ABC12345 analyze this code`
**LINE:** `Token ABC12345 analyze this code`
**Email:** Reply to notification emails

## 📋 Backward Compatibility
- All existing email functionality preserved
- Configuration migration path provided
- No breaking changes to existing hooks

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* feat: Complete Telegram Remote Control System with Direct Chat Mode

### 🚀 Major Features Added
- **Direct Chat Mode**: Users can chat with Claude naturally without /cmd tokens
- **Smart Monitoring**: Intelligent response detection with historical processing
- **One-Click Startup**: Complete system management via startup script
- **Auto-Notification**: Real-time Claude response detection and Telegram delivery

### 📱 Telegram Integration
- `telegram-direct-mode.js`: Direct conversation interface
- `telegram-polling.js`: Command polling with token validation
- Enhanced notification system with markdown formatting

### 🧠 Smart Monitoring System
- `smart-monitor.js`: Advanced response detection with history awareness
- `simple-monitor.js`: Lightweight monitoring alternative
- `auto-notification-daemon.js`: Background notification service

### 🛠️ System Management
- `start-telegram-claude.sh`: Complete service management script
- Environment validation and dependency checking
- Color-coded status reporting and log management
- Process lifecycle management (start/stop/restart/status)

### 📖 Documentation & Testing
- `TELEGRAM_CLAUDE_GUIDE.md`: Comprehensive user guide
- Complete test suite for all components
- Usage examples and troubleshooting guide

### 🔧 Core Improvements
- Enhanced `controller-injector.js` with proper Enter key handling
- Updated `tmux-monitor.js` with real-time output monitoring
- Improved error handling and logging throughout
- Session management with automatic cleanup

### 🎯 Key Capabilities
- **Seamless Communication**: Direct Telegram ⟷ Claude integration
- **Full Automation**: No manual intervention required
- **Robust Monitoring**: Never miss Claude responses
- **Easy Deployment**: Single script startup and management
- **Multi-Modal Support**: Ready for LINE integration expansion

### 📊 System Architecture
```
User → Telegram Bot → Direct Injection → Claude Session → Smart Monitor → Auto Notification → User
```

This completes the transformation from email-based to messaging-app-based remote Claude control,
providing a modern, efficient, and user-friendly interface for remote AI interaction.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* docs: Enhance documentation and smart monitoring system

- Add comprehensive CLAUDE.md for Claude Code development guidance
- Update README.md with multi-platform focus and improved instructions
- Enhance smart-monitor.js with auto-approval for tool permissions
- Improve start-telegram-claude.sh with better tmux session management
- Add auto-approver.js for automated tool permission handling

Key improvements:
- Multi-platform documentation (Telegram, LINE, Email, Local)
- Enhanced troubleshooting and command reference sections
- Smart monitoring with historical response detection
- Automated tool permission approval workflow
- Better tmux integration and session management

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* chore: Add CLAUDE.md to .gitignore and remove from tracking

- Add CLAUDE.md to .gitignore under "Claude Code development files" section
- Remove CLAUDE.md from git tracking while preserving local file
- CLAUDE.md should remain as local development documentation only

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* feat: Complete Telegram integration with multi-channel notifications

-  Enhanced Telegram bot with smart buttons for personal/group chats
-  Multi-channel notification system (Desktop, Telegram, Email, LINE)
-  Smart sound alerts with customizable audio feedback
-  Real-time command injection with tmux session management
-  Intelligent session detection and conversation content extraction
-  Unified README documentation with complete setup guides
- 🧹 Clean up legacy files and consolidate documentation
- 📱 Add setup scripts for easy Telegram configuration
- 🔧 Enhance webhook system with improved error handling

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Update processed messages

---------

Co-authored-by: laihenyi <henyi@henyi.org>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: laihenyi <laihenyi@users.noreply.github.com>
2025-08-02 04:21:26 +08:00
Song-Ze Yu 61dd2e30c3
Add full execution trace in email notifications (#11) (#14)
* Add configuration option to disable subagent notifications

- Added 'enableSubagentNotifications' config option (default: false)
- Modified notification handler to check config before sending subagent notifications
- Created documentation explaining the feature
- Updated README with note about subagent notifications

This addresses the issue where frequent subagent notifications can be distracting.
Users can now control whether they receive notifications when subagents stop/start.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Add subagent activity tracking in completion emails

- Track subagent activities instead of sending individual notifications
- Include subagent activity summary in completion emails
- Update email templates to display subagent activities
- Add SubagentTracker utility to manage activity tracking
- Update documentation to explain the new behavior

This provides a better user experience by:
1. Reducing notification noise from frequent subagent activities
2. Still providing full visibility into what subagents did
3. Consolidating all information in the completion email

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Improve subagent activity details and documentation

- Enhanced activity capture to include up to 1000 characters (was 200)
- Improved email display format with better visual separation
- Added detection for initialization-only captures with helpful message
- Added configuration option for activity detail level
- Created comprehensive documentation explaining the timing limitation
- Added visual indicators for processing status

This addresses the issue where subagent outputs were truncated or only
showed initialization messages. Users now get better visibility into
what subagents are doing, with clear indication when full output is
available in tmux.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* delete redundant files and modify README

* Fix HTML escaping in email notifications

- Add _escapeHtml function to properly escape HTML entities in emails
- Escape user-generated content to prevent HTML tags from being hidden
- Fix issue where <developer> and other HTML-like strings disappeared in emails
- Apply escaping to both main email content and subagent activity summaries

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Add full execution trace to email notifications

- Add getFullExecutionTrace method to capture complete terminal output
- Include execution trace in a scrollable section within emails
- Add CSS styling for visible scrollbars on desktop
- Clean trace output by removing command prompt boxes
- Add fallback message when trace is not available

This addresses issue #11 - providing transparency about task execution

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Redesign email notification UI with improved terminal aesthetics

- Reorganize content hierarchy: user request at top, response second, trace at bottom
- Preserve terminal-style commands ($ cat, $ claude-code execute, etc.)
- Remove redundant session info footer
- Implement smart execution trace capture from user input to completion
- Add TraceCapture utility to track user input timestamps
- Improve visual hierarchy while maintaining terminal aesthetics
- Use border colors (orange for user, green for success) for better distinction
- Make execution trace collapsible and de-emphasized

This improves readability while preserving the terminal charm of the project.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix execution trace filtering to show only recent activity

- Change filter logic to find LAST user input instead of first
- Search backwards through content to find most recent "> " prompt
- Only include content from that point forward
- Add fallback to show last 100 lines if no user input found
- This ensures trace shows only relevant recent execution, not entire history

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Remove duplicate content from execution trace

- Skip the first user input line (already shown in main content)
- Skip the last Claude response (already shown in main content)
- Only show intermediate execution steps and tool usage
- Clean up empty lines at beginning and end
- This avoids redundancy and focuses trace on execution details

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix execution trace to properly remove complete user input and output

- Track multi-line user input and skip all continuation lines
- Detect when user input ends (empty line or next command)
- Stop before the last Claude response to avoid truncation
- Only show intermediate execution steps between input and output

This ensures the trace shows the complete execution process without
duplicating content already displayed in the main sections.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix multi-line user input capture and trace filtering

- Capture complete multi-line user input (not just first line)
- Join continuation lines with spaces for proper display
- Preserve all execution details in trace (tool calls, outputs)
- Only skip user input and final response, keep everything in between

* Add configuration toggle for subagent activities in email

- Added 'showSubagentActivitiesInEmail' config option (default: false)
- Modified claude-remote.js to check config before including subagent activities
- Created documentation explaining the configuration
- Allows users to choose between concise emails (execution trace only) or detailed emails (both summaries)

This addresses the redundancy between execution trace and subagent activities summary,
giving users control over email content.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix Git merge conflict in email template and document subagent config

- Removed Git merge conflict markers from email text template
- Added documentation for showSubagentActivitiesInEmail config in README
- Explained that subagent activities are disabled by default for concise emails

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Update README changelog for PR #10 and issue #11

- Added entry for subagent notifications configuration (PR #10)
- Added entry for execution trace feature (issue #11)
- Maintained chronological order in changelog

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* delete redundant files

* fix #15: add local database into .gitignore

* Fix execution trace display in email notifications

- Remove collapsible details tag for better email client compatibility
- Add configuration option to toggle execution trace display
- Fix HTML escaping issue for executionTraceSection variable

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Remove data files from git tracking

These session-specific data files should not be tracked in version control
as they are machine-specific and cause issues when pulling on other machines.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix typo(?) in changelog (#13)

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Naich <an.naich@gmail.com>
Co-authored-by: JessyTsui <51992423+JessyTsui@users.noreply.github.com>
2025-08-02 04:07:34 +08:00
Song-Ze Yu 5159e53eaa
Fix #9 #12: Add configuration to disable subagent notifications (#10)
* Add configuration option to disable subagent notifications

- Added 'enableSubagentNotifications' config option (default: false)
- Modified notification handler to check config before sending subagent notifications
- Created documentation explaining the feature
- Updated README with note about subagent notifications

This addresses the issue where frequent subagent notifications can be distracting.
Users can now control whether they receive notifications when subagents stop/start.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Add subagent activity tracking in completion emails

- Track subagent activities instead of sending individual notifications
- Include subagent activity summary in completion emails
- Update email templates to display subagent activities
- Add SubagentTracker utility to manage activity tracking
- Update documentation to explain the new behavior

This provides a better user experience by:
1. Reducing notification noise from frequent subagent activities
2. Still providing full visibility into what subagents did
3. Consolidating all information in the completion email

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Improve subagent activity details and documentation

- Enhanced activity capture to include up to 1000 characters (was 200)
- Improved email display format with better visual separation
- Added detection for initialization-only captures with helpful message
- Added configuration option for activity detail level
- Created comprehensive documentation explaining the timing limitation
- Added visual indicators for processing status

This addresses the issue where subagent outputs were truncated or only
showed initialization messages. Users now get better visibility into
what subagents are doing, with clear indication when full output is
available in tmux.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* delete redundant files and modify README

* Fix HTML escaping in email notifications

- Add _escapeHtml function to properly escape HTML entities in emails
- Escape user-generated content to prevent HTML tags from being hidden
- Fix issue where <developer> and other HTML-like strings disappeared in emails
- Apply escaping to both main email content and subagent activity summaries

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-08-01 14:49:48 +08:00
Kevin Lin e5de5a7932
Merge pull request #2 from kevinsslin/fix/email-from-env-variable
Remove hardcoded values and implement environment-based configuration
2025-07-28 14:44:37 +08:00
panda 5ddda6217e Complete rebrand from TaskPing to Claude-Code-Remote
- Update project name and metadata in package.json and package-lock.json
- Rename all CLI classes and main entry points
- Fix email notification sender from "TaskPing Notification System" to "Claude-Code-Remote Notification System"
- Update email subject headers from [TaskPing #token] to [Claude-Code-Remote #token]
- Rebrand daemon service and all console output messages
- Update configuration managers and installation scripts
- Modify notification channels and test templates
- Update GitHub repository URLs and author information
- Fix all remaining TaskPing references in codebase

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-28 02:21:38 +08:00
panda 5d7601f593 Convert entire project to English version
- Translated all Chinese comments and documentation to professional English
- Converted all console messages and user interface text to English
- Updated README.md with comprehensive English documentation
- Translated configuration files and templates to English
- Converted error messages and status indicators to English
- Maintained all functionality while improving international accessibility
- Used consistent technical terminology throughout the codebase

Major changes:
- README.md: Complete English rewrite with detailed usage instructions
- All .js files: Chinese comments → English technical documentation
- Configuration files: Chinese labels → English descriptions
- User messages: Chinese prompts → English user interface
- Error handling: Chinese errors → English error messages

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-27 17:17:15 +08:00
panda a920a41c90 修复邮件监听服务的IMAP问题
- 解决client.idle()不兼容的问题
- 改用定期检查机制监听新邮件
- 修复邮件下载和解析方法
- 改善错误处理和日志记录
- 配置使用飞书邮箱接收回复

现在可以:
1. 成功连接飞书IMAP服务器
2. 读取和解析邮件内容
3. 检测TaskPing相关邮件
4. 等待用户回复测试

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-27 02:59:03 +08:00
panda be9eb49734 配置邮件账号并添加测试工具
- 配置飞书邮箱发件 (noreply@pandalla.ai)
- 配置 Gmail 收件 (jiaxicui446@gmail.com)
- 添加邮件配置更新脚本
- 添加邮件发送测试工具
- 创建快速配置指南
- 更新 npm 脚本命令

现在可以:
1. 通过飞书邮箱发送通知
2. 在 Gmail 接收通知
3. 回复邮件控制 Claude Code

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-27 02:49:07 +08:00
panda 45576e5a3e Add TaskPing project files
- Initial project structure with documentation
- Email automation and notification system
- Claude command integration
- Configuration management system
- Daemon process for task monitoring
- Multi-channel notification support (email, desktop)
- Session data storage
- Development and deployment scripts

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-27 02:22:12 +08:00