Task Tracking
Overview
Section titled “Overview”When Claude Code uses the TaskCreate and TaskUpdate tools during a session, Abbado captures these events and reconstructs a task list for each run. This gives you a structured view of what the agent planned to do and how far it got.
How It Works
Section titled “How It Works”Abbado does not implement its own task system. Instead, it reconstructs tasks from hook events:
- The agent calls
TaskCreatewith a subject, description, and status - The
PreToolUsehook fires — Abbado persists the tool call as anagent.tool_callevent - The
PostToolUsehook fires — Abbado persists the tool result as anagent.tool_resultevent (containing the task ID) - When you request the task list, Abbado replays all events and pairs
TaskCreatecalls with their results
For TaskUpdate events, the same process applies — Abbado updates the task’s status, subject, or description based on the tool input.
Task States
Section titled “Task States”Tasks go through these states (as set by the agent):
| Status | Meaning |
|---|---|
pending | Task created but not started |
in_progress | Agent is currently working on this task |
completed | Task finished successfully |
deleted | Task removed (filtered from display) |
Get Tasks for a Run
Section titled “Get Tasks for a Run”GET /api/runs/{id}/tasksReturns a list of tasks reconstructed from events:
[ { "id": "task-1", "subject": "Add input validation to login form", "description": "Validate email format and password length", "status": "completed" }, { "id": "task-2", "subject": "Write unit tests for validation", "status": "in_progress" }]Tasks with status deleted are filtered out of the response.
Event Reconstruction
Section titled “Event Reconstruction”The task list is derived from events, not stored separately. This means:
- No separate task table — tasks come from
agent.tool_callandagent.tool_resultevents - Consistent with event history — tasks always reflect what actually happened
- No sync issues — the task list is computed on read, not maintained in parallel
The reconstruction algorithm:
- Iterate all events for the run in order
- For
agent.tool_callevents with toolTaskCreate, store the input (subject, description, status) - For
agent.tool_resultevents with toolTaskCreate, extract the task ID from the response and create the task entry - For
agent.tool_callevents with toolTaskUpdate, update the matching task’s fields
Dashboard Display
Section titled “Dashboard Display”In the frontend, the task list appears in the run panel when tasks are present. Each task shows:
- A status icon (pending, in progress, completed)
- The task subject
- The task description (if provided)
This gives you a quick overview of the agent’s plan and progress without reading through the full event history.