claude-code-remote-remake/test-complete-flow.sh

120 lines
3.7 KiB
Bash
Raw Permalink Normal View History

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
#!/bin/bash
# 完整的端到端测试脚本
# Complete end-to-end test script
set -e
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$PROJECT_DIR"
echo "🧪 Claude Code Remote - 完整端到端测试"
echo "======================================"
# 1. 检查服务状态
echo "📋 1. 检查服务状态"
echo -n " ngrok服务: "
if pgrep -f "ngrok http" > /dev/null; then
echo "✅ 运行中"
NGROK_URL=$(curl -s http://localhost:4040/api/tunnels | jq -r '.tunnels[0].public_url' 2>/dev/null || echo "获取失败")
echo " ngrok URL: $NGROK_URL"
else
echo "❌ 未运行"
fi
echo -n " Telegram webhook: "
if pgrep -f "start-telegram-webhook" > /dev/null; then
echo "✅ 运行中"
else
echo "❌ 未运行"
fi
# 2. 检查配置文件
echo ""
echo "📋 2. 检查配置文件"
echo -n " ~/.claude/settings.json: "
if [ -f ~/.claude/settings.json ]; then
echo "✅ 存在"
echo " Hooks配置:"
cat ~/.claude/settings.json | jq '.hooks' 2>/dev/null || echo " 解析失败"
else
echo "❌ 不存在"
fi
echo -n " .env文件: "
if [ -f .env ]; then
echo "✅ 存在"
echo " Telegram配置:"
grep "TELEGRAM_" .env | grep -v "BOT_TOKEN" | while read line; do
echo " $line"
done
else
echo "❌ 不存在"
fi
# 3. 测试hook脚本
echo ""
echo "📋 3. 测试hook脚本执行"
echo " 运行: node claude-hook-notify.js completed"
node claude-hook-notify.js completed
# 4. 检查最新session
echo ""
echo "📋 4. 检查最新创建的session"
if [ -d "src/data/sessions" ]; then
LATEST_SESSION=$(ls -t src/data/sessions/*.json 2>/dev/null | head -1)
if [ -n "$LATEST_SESSION" ]; then
echo " 最新session: $(basename "$LATEST_SESSION")"
echo " 内容摘要:"
cat "$LATEST_SESSION" | jq -r '"\tToken: \(.token)\n\tType: \(.type)\n\tCreated: \(.created)\n\tTmux Session: \(.tmuxSession)"' 2>/dev/null || echo " 解析失败"
else
echo " ❌ 未找到session文件"
fi
else
echo " ❌ sessions目录不存在"
fi
# 5. 测试Telegram Bot连接
echo ""
echo "📋 5. 测试Telegram Bot连接"
if [ -n "$TELEGRAM_BOT_TOKEN" ] && [ -n "$TELEGRAM_CHAT_ID" ]; then
echo " 发送测试消息到个人聊天..."
RESPONSE=$(curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
-H "Content-Type: application/json" \
-d "{\"chat_id\": $TELEGRAM_CHAT_ID, \"text\": \"🧪 端到端测试完成\\n\\n时间: $(date)\\n\\n如果你看到这条消息说明基础通信正常。\\n\\n下一步在Claude中完成一个任务看是否能收到自动通知。\"}")
if echo "$RESPONSE" | grep -q '"ok":true'; then
echo " ✅ 测试消息发送成功"
else
echo " ❌ 测试消息发送失败"
echo " 响应: $RESPONSE"
fi
else
echo " ⚠️ Telegram配置不完整"
fi
# 6. 检查tmux sessions
echo ""
echo "📋 6. 检查tmux sessions"
if command -v tmux >/dev/null 2>&1; then
echo " 当前tmux sessions:"
tmux list-sessions 2>/dev/null || echo " 无活跃session"
else
echo " ❌ tmux未安装"
fi
echo ""
echo "🏁 测试完成"
echo ""
echo "💡 下一步调试建议:"
echo "1. 确认你收到了上面的Telegram测试消息"
echo "2. 在tmux中运行Claude完成一个简单任务"
echo "3. 检查是否收到自动通知"
echo "4. 如果没有收到检查Claude输出是否有错误信息"
echo ""
echo "🔧 如果仍有问题,请运行:"
echo " tmux new-session -s claude-debug"
echo " # 在新session中:"
echo " export CLAUDE_HOOKS_CONFIG=$PROJECT_DIR/claude-hooks.json"
echo " claude"
echo " # 然后尝试一个简单任务"