This commit adds a dedicated task list page to view and manage all video
learning sessions, solving the issue where users couldn't find their
background tasks after navigating away.
Features:
- New sessions.html page with card-based layout for all sessions
- Real-time polling for session status updates (every 3 seconds)
- Session control buttons (pause/resume/stop/delete)
- localStorage integration for session persistence across page refreshes
- Navigation links added to main page and video learning page
- Empty state UI when no sessions exist
New files:
- dashboard/static/sessions.html - Task list page
- dashboard/static/js/sessions.js - Sessions module with API calls
- dashboard/static/css/sessions.css - Styling for sessions page
Modified files:
- dashboard/api/video_learning.py - Added /sessions/list endpoint
- dashboard/static/index.html - Added "任务列表" button
- dashboard/static/video-learning.html - Added "任务列表" button and localStorage
Co-Authored-By: Claude <noreply@anthropic.com>
- Add device-session bidirectional mapping (_device_sessions)
- Integrate DeviceManager lock mechanism (acquire/release)
- Add device-level API endpoints:
- GET /devices/{device_id}/sessions - List sessions on device
- POST /devices/{device_id}/stop-all - Stop all sessions on device
- GET /devices/sessions - Overview of all devices
- Update session cleanup to maintain mapping consistency
- Prevent concurrent sessions on same device
Co-Authored-By: Claude <noreply@anthropic.com>
Features:
- ScreenshotAnalyzer class for VLM-based image analysis
- Real-time analysis during video recording
- Extract likes, comments, tags, category from screenshots
- Frontend display for category badges and tags
- Batch analysis API endpoint
Co-Authored-By: Claude <noreply@anthropic.com>
Features:
- VideoLearningAgent for automated video watching on Douyin/Kuaishou/TikTok
- Web dashboard UI for video learning sessions
- Real-time progress tracking with screenshot capture
- App detection using get_current_app() for accurate recording
- Session management with pause/resume/stop controls
Technical improvements:
- Simplified video detection logic using direct app detection
- Full base64 hash for sensitive screenshot change detection
- Immediate stop when target video count is reached
- Fixed circular import issues with ModelConfig
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Features:
- Web Dashboard: FastAPI-based dashboard with Vue.js frontend
- Multi-device support (ADB, HDC, iOS)
- Real-time WebSocket updates for task progress
- Device management with status tracking
- Task queue with execution controls (start/stop/re-execute)
- Detailed task information display (thinking, actions, completion messages)
- Screenshot viewing per device
- LAN deployment support with configurable CORS
- Callback Hooks: Interrupt and modify task execution
- step_callback: Called after each step with StepResult
- before_action_callback: Called before executing action
- Support for task interruption and dynamic task switching
- Example scripts demonstrating callback usage
- Configuration: Environment-based configuration
- .env file support for all settings
- .env.example template with documentation
- Model API configuration (base URL, model name, API key)
- Dashboard configuration (host, port, CORS, device type)
- Phone agent configuration (delays, max steps, language)
Technical improvements:
- Fixed forward reference issue with StepResult
- Added package exports for callback types and configs
- Enhanced dependencies with FastAPI, WebSocket support
- Thread-safe task execution with device locking
- Async WebSocket broadcasting from sync thread pool
Co-Authored-By: Claude <noreply@anthropic.com>