API:
POST /api/tasks/{id}/run — sets task to in_progress immediately,
launches subprocess with error handling and logging.
GET /api/tasks/{id}/running — checks pipelines table for active run.
Fixed --db flag position in subprocess command.
TaskDetail (live pipeline):
- Run button starts pipeline, auto-starts 3s polling
- Pipeline cards update in real-time as agent_logs appear
- Pulsing blue dot on header while in_progress
- Spinner on run button during execution
- Auto-stops polling when status changes from in_progress
- Cleanup on component unmount (no leaked timers)
ProjectView (run from list):
- [>] button on each pending task row
- Confirm dialog before starting
- Pulsing blue dot for in_progress tasks
- Click task row → /task/:id with live view
Dashboard (live statuses):
- Pulsing blue dot next to active task count
- Auto-poll every 5s when any project has active tasks
- Stops polling when no active tasks
5 new API tests (running endpoint, run sets status, not found).
141 tests total, all passing. Frontend builds clean.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
API (web/api.py) — 5 new endpoints:
GET /api/tasks/{id}/pipeline — agent_logs as pipeline steps
GET /api/tasks/{id}/full — task + steps + related decisions
POST /api/tasks/{id}/approve — mark done, optionally add decision
POST /api/tasks/{id}/reject — return to pending with reason
POST /api/tasks/{id}/run — launch pipeline in background (202)
Frontend:
TaskDetail (/task/:id) — full task page with:
- Pipeline graph: role cards with icons, arrows, status colors
- Click step → expand output (pre-formatted, JSON detected)
- Action bar: Approve (with optional decision), Reject, Run Pipeline
- Polling for live pipeline updates
Dashboard: review_tasks badge ("awaiting review" in yellow)
ProjectView: task rows are now clickable links to /task/:id
Runner: output_summary no longer truncated (full output for GUI).
Models: get_project_summary includes review_tasks count.
13 new API tests, 105 total, all passing. Frontend builds clean.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>