7.5 KiB
7.5 KiB
Progress Tracking
Know Where Your Task Is
Overview
Every autonomous task shows real-time progress so you always know:
- What step is running
- How far along it is
- How much time remains
- If anything needs your attention
The Progress View
┌────────────────────────────────────────────────────────────────┐
│ Cellphone Store CRM │
│ │
│ [████████████████████░░░░░░░░░░] 65% │
│ │
│ Step 2 of 4: Generate application UI │
│ ├─ Customer list view ✓ │
│ ├─ Product list view ✓ │
│ ├─ Sales form ◐ (in progress) │
│ └─ Repair board ○ (pending) │
│ │
│ Started: 2 min ago │
│ ETA: 3 min remaining │
│ │
│ [Pause] [Cancel] │
└────────────────────────────────────────────────────────────────┘
Progress Indicators
| Symbol | Meaning |
|---|---|
| ✓ | Completed |
| ◐ | In progress |
| ○ | Pending |
| ⚠ | Needs attention |
| ✕ | Failed |
| ⏸ | Paused |
Step States
Each step goes through these states:
pending → running → completed
↘ failed
↘ skipped
State Details
| State | Description | Action |
|---|---|---|
pending |
Waiting to start | None needed |
running |
Currently executing | Monitor progress |
completed |
Successfully finished | None needed |
failed |
Encountered error | Review and retry/skip |
skipped |
Intentionally bypassed | None needed |
paused |
Waiting for resume | Click Resume |
approval |
Needs your approval | Approve or reject |
Real-Time Updates
Progress updates via WebSocket:
// Connect to task updates
const ws = new WebSocket('/ws/tasks');
ws.onmessage = (event) => {
const update = JSON.parse(event.data);
switch (update.type) {
case 'progress':
// Update progress bar
updateProgress(update.percent);
break;
case 'step_complete':
// Mark step as done
markStepComplete(update.step);
break;
case 'approval_needed':
// Show approval dialog
showApproval(update.approval);
break;
case 'task_complete':
// Show completion
showComplete(update.result);
break;
}
};
Stored Progress
Progress is persisted to the database so you can:
Resume After Interruption
If you close your browser or lose connection:
- Task continues running on the server
- When you return, progress is restored
- You see exactly where it is
Continue Later
If you pause a task:
- Current state is saved
- Come back anytime
- Click Resume to continue from the exact point
Review History
-- task_progress table
task_id | step | percent | status | updated_at
----------|---------|---------|-----------|--------------------
abc123 | 1 | 100 | completed | 2024-01-15 10:00:15
abc123 | 2 | 65 | running | 2024-01-15 10:02:30
abc123 | 3 | 0 | pending | NULL
abc123 | 4 | 0 | pending | NULL
Progress API
Get Task Progress
GET /api/tasks/{task_id}/progress
Response:
{
"task_id": "abc123",
"title": "Cellphone Store CRM",
"status": "running",
"progress": 65,
"current_step": 2,
"total_steps": 4,
"started_at": "2024-01-15T10:00:00Z",
"eta_seconds": 180,
"steps": [
{
"order": 1,
"name": "Create database tables",
"status": "completed",
"progress": 100,
"duration_ms": 15000
},
{
"order": 2,
"name": "Generate application UI",
"status": "running",
"progress": 65,
"substeps": [
{"name": "Customer list", "done": true},
{"name": "Product list", "done": true},
{"name": "Sales form", "done": false},
{"name": "Repair board", "done": false}
]
},
{
"order": 3,
"name": "Add search and filters",
"status": "pending",
"progress": 0
},
{
"order": 4,
"name": "Configure workflows",
"status": "pending",
"progress": 0
}
]
}
Subscribe to Updates
WS /ws/tasks/{task_id}
Receives real-time progress updates.
Progress in Chat
Ask your bot about task progress:
"How's my CRM task going?"
Bot response:
📊 Your Cellphone Store CRM task is 65% complete.
Currently: Generating application UI
- ✓ Customer list view
- ✓ Product list view
- ⏳ Sales form (in progress)
- ⏳ Repair board
ETA: About 3 minutes remaining.
Notifications
Get notified when:
| Event | Notification |
|---|---|
| Task starts | "Your CRM task has started" |
| Step completes | "Step 1 complete: Database created" |
| Approval needed | "⚠️ Approval required for Step 3" |
| Task completes | "✅ Your CRM is ready!" |
| Task fails | "❌ Task failed at Step 2" |
Notification Channels
- Browser - Desktop notifications
- Email - For long-running tasks
- Chat - Bot sends you updates
- Mobile - Push notifications (if app installed)
Time Estimates
The system estimates remaining time based on:
- Historical data - How long similar steps took before
- Current progress - How fast the current step is moving
- Complexity - More complex apps take longer
Estimate Accuracy
| Task Complexity | Estimate Accuracy |
|---|---|
| Simple (1-2 tables) | ±20% |
| Medium (3-5 tables) | ±30% |
| Complex (6+ tables) | ±50% |
Handling Slow Tasks
If a task is taking longer than expected:
Check Progress
"Status of my CRM task"
See Detailed Logs
"Show logs for my CRM task"
Cancel and Retry
"Cancel my CRM task and start over"
Progress Best Practices
Monitor Long Tasks
For tasks over 10 minutes:
- Enable email notifications
- Check in periodically
- Have fallback plans
Pause Before Leaving
If you need to leave:
- Pause the task
- It saves state
- Resume when ready
Review Failed Steps
When a step fails:
- Check the error message
- Understand what went wrong
- Retry, skip, or modify
See Also
- Task Workflow - The complete task flow
- App Generation - What gets generated
- Examples - Real task examples