Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.claboard.dev/llms.txt

Use this file to discover all available pages before exploring further.

List Tasks

GET /api/projects/:projectId/tasks
Returns all tasks for a project, ordered by priority and creation date.

Get Task

GET /api/tasks/:id
Returns a single task with all fields.

Get Task Detail

GET /api/tasks/:id/detail
Extended detail view including revision history, attachments, parsed commits, and complete log entries.
{
  "id": 1,
  "title": "Add authentication",
  "description": "Implement JWT login",
  "status": "testing",
  "priority": 2,
  "task_type": "feature",
  "model": "sonnet",
  "thinking_effort": "medium",
  "acceptance_criteria": "All tests pass",
  "tags": "[\"auth\", \"backend\"]",
  "task_key": "FTR-PRJ-1001",
  "commits": [{ "hash": "abc1234", "message": "Add login endpoint" }],
  "revisions": [
    { "id": 1, "taskId": 1, "feedback": "Add validation", "createdAt": "..." }
  ],
  "attachments": [
    { "id": 1, "taskId": 1, "fileName": "spec.pdf", "mimeType": "application/pdf" }
  ]
}

Create Task

POST /api/projects/:projectId/tasks
Content-Type: application/json
{
  "title": "Add user authentication",
  "description": "Implement JWT-based login and registration",
  "task_type": "feature",
  "priority": 2,
  "model": "sonnet",
  "thinking_effort": "medium",
  "acceptance_criteria": "All auth tests pass, tokens expire correctly",
  "tags": "[\"auth\"]",
  "parent_task_id": null
}
FieldRequiredDefaultDescription
titleYesTask title
descriptionNo""Detailed instructions for the agent
task_typeNofeaturefeature, bugfix, refactor, docs, test, chore
priorityNo00 (low) to 3 (urgent)
modelNosonnetopus, sonnet, haiku
thinking_effortNomediumlow, medium, high
acceptance_criteriaNo""Criteria the agent must satisfy
tagsNonullJSON array string of tag labels
parent_task_idNonullParent task ID for sub-task linking
When parent_task_id is set, the new task becomes a sub-task. The parent automatically enters “awaiting sub-tasks” mode and completes when all sub-tasks finish.

Update Task

PUT /api/tasks/:id
Content-Type: application/json
Accepts the same fields as Create (except parent_task_id). Only included fields are updated.
{
  "title": "Updated title",
  "priority": 3,
  "tags": "[\"urgent\", \"auth\"]"
}

Change Status

PATCH /api/tasks/:id/status
Content-Type: application/json
{ "status": "in_progress" }
Valid statuses: backlog, in_progress, testing, done, failed Moving to in_progress spawns a Claude agent. Moving to done stops any running agent.

Get Logs

GET /api/tasks/:id/logs?limit=500
Returns recent agent log entries for a task, ordered chronologically (oldest first).
ParameterDefaultDescription
limit500Max number of log entries to return

Get Revisions

GET /api/tasks/:id/revisions
Returns all change-request revisions for a task.

Delete Task

DELETE /api/tasks/:id
Returns { "ok": true } on success.

Agent Control (Tauri IPC)

These endpoints are only available in the Tauri desktop app. They are not exposed via the HTTP API.

Stop Agent

invoke('stop_task', { id: 1 })
Kills the running Claude process for a task and sets status to backlog.

Restart Agent

invoke('restart_task', { id: 1, mcpPort: 4000 })
Stops any running agent and restarts a fresh Claude session.

Request Changes

invoke('request_changes', {
  id: 1,
  feedback: "Add input validation to the login endpoint",
  mcpPort: 4000
})
Creates a revision record and resumes the agent with the feedback.

Get Task Diff

invoke('get_task_diff', { taskId: 1 })
Returns git diff of changes made by the agent on the task’s feature branch.
{
  "diff": "diff --git a/src/auth.rs ...",
  "branch": "cb/add-authentication-1",
  "stats": { "files": 3, "insertions": 45, "deletions": 12 }
}

Dependencies (Tauri IPC)

Add Dependency

invoke('add_task_dependency', {
  taskId: 5,
  dependsOnId: 3,
  conditionType: 'always' // 'always' | 'on_success' | 'on_failure'
})
Creates a dependency edge with an optional condition type. Returns error if it would create a cycle.

Remove Dependency

invoke('remove_task_dependency', { taskId: 5, dependsOnId: 3 })

Get Task Dependencies

invoke('get_task_dependencies', { taskId: 5 })
// -> { parents: [3, 1], children: [8, 9] }

Get Dependency Graph

invoke('get_dependency_graph', { projectId: 1 })
// -> { tasks: [...], edges: [{from: 3, to: 5, conditionType: "always"}, ...], waves: [...] }

Get Execution Waves

invoke('get_execution_waves', { projectId: 1 })
// -> [[task1, task2], [task3], [task4, task5]]
Returns tasks grouped by execution wave. Tasks in the same wave can run in parallel.

Get Pipeline Status

invoke('get_pipeline_status', { projectId: 1 })
Returns current pipeline execution state including which wave is active and which tasks are blocked.

Queue Management (Tauri IPC)

Reorder Queue

invoke('reorder_queue', { projectId: 1, taskIds: [5, 3, 8, 1] })
Reorders the task queue by setting priority based on the provided order.

Observability (Tauri IPC)

Get Agent Activity

invoke('get_agent_activity', { projectId: 1 })
Returns real-time data about all running agents:
{
  "agents": [
    {
      "taskId": 5,
      "taskKey": "FTR-PRJ-1005",
      "title": "Add authentication",
      "model": "sonnet",
      "elapsedSec": 120,
      "inputTokens": 50000,
      "outputTokens": 12000,
      "totalCost": 0.33,
      "toolCallCount": 45,
      "recentTools": [...],
      "activeFiles": ["src/auth.rs", "src/main.rs"],
      "isRunning": true,
      "awaitingSubtasks": false
    }
  ],
  "fileMap": {
    "src/auth.rs": [5],
    "src/main.rs": [5, 8]
  },
  "conflicts": [
    { "filePath": "src/main.rs", "taskIds": [5, 8] }
  ]
}

Get Active File Map

invoke('get_active_file_map')
// -> { "src/auth.rs": [5], "src/main.rs": [5, 8] }
Returns a map of file paths to task IDs currently accessing them.

Get Task Events

invoke('get_task_events', { taskId: 1, limit: 500 })
Returns structured event log for a task including tool calls, status changes, and agent messages.