# Tasks and task runs

> Source: https://docs.clonepartner.com/using/tasks-and-runs/

<!-- sources: ui/src/views/TasksView.vue, ui/src/views/TaskDetailView.vue, ui/src/views/TaskEditorView.vue, ui/src/views/RunsView.vue, ui/src/views/RunDetailView.vue -->

# Tasks and task runs

A Task is a YAML pipeline definition; a Run is one execution of a Task, started standalone from the Task page or as part of a [Job Run](/using/job-runs/). These four screens — the Tasks list, Task detail, Task editor, and the Runs list — are where operators manage the Task library and review execution history.

## Screen overview: Tasks list

Open **Tasks** in the sidebar. The page header reads **Tasks** ("Manage your task definitions and versions.") with a refresh button, an **Import** button, and a **New Task** button. A search box ("Search tasks...") and a **Status** filter (**All statuses** / **Active** / **Archived**) sit above the table.

Columns: a selection checkbox, **Name** (sortable), **Description**, **Version** (sortable), **Status**, and **Created** (sortable). Each row has inline **Run** and **Edit** icon buttons (Run is disabled for archived Tasks — "Archived tasks cannot be run") plus a ⋮ menu with **Run**, **Edit**, **Duplicate**, **Export**, **Archive** or **Restore**, and **Delete permanently**. Selecting rows enables a bulk **Export**. Deleting asks for confirmation: "This will permanently delete '&lt;name&gt;' and all its versions and run history. This cannot be undone."

<!-- screenshot: tasks-and-runs-tasks-list | Tasks list showing the Version column, inline Run and Edit icons on a row, and the open row ⋮ menu -->

## Task detail

Clicking a Task opens its detail page: the Task name with a version badge (`v3`), its description, connector slot chips, and a metrics summary. The main panel, **YAML Configuration**, shows the Task YAML in a read-only editor with a version selector. The right column lists **Recent Runs** (the last eight, clickable) and **Version History** — selecting a version loads its YAML into the viewer.

Header actions: **Run Now**, **Edit**, and a ⋮ menu with **Download YAML**, **Export with history**, **Archive**/**Restore**, and **Delete permanently**.

## To start a standalone run

1. On the Task detail page, select **Run Now** (or the **Run** icon on the Tasks list, which opens the same flow).
2. The **Run Configuration** dialog opens ("Configure connectors and arguments to run this task."). Under **Connectors**, bind a stored Connector to each slot — each select is filtered to the slot's type, and a slot is pre-filled when exactly one matching Connector exists.
3. Under **Arguments** (shown when the Task declares arguments), fill each field. Required arguments are marked; defaults are pre-filled.
4. Select **Run**. The button stays disabled until every slot and required argument is filled. The browser navigates to the new Run's detail page.

If the Task has no connector slots and no arguments, **Run Now** starts the Run immediately without a dialog.

<!-- screenshot: tasks-and-runs-run-dialog | Run Configuration dialog with a Connectors section showing one bound slot and an Arguments section with a required field -->

## Task editor

**New Task** and **Edit** open the editor (admin or superadmin only). The top bar shows **New Task** or **Edit: &lt;name&gt;**, with **AI Assist**, the save button (**Create Task** for new Tasks, **Save Version** when editing), and a ⋮ menu with **Archive**/**Restore** and **Delete permanently**.

The metadata row has **Name** (required; locked after creation), **Description**, and — when editing — **Change Summary**, which records what changed in this version. Below it is a full-height YAML editor.

Saving validates the YAML on the server. If validation fails, a "Validation failed" banner lists each issue with its severity, step, field, and message, and a **Fix with AI** button sends the issues to the AI assistant. Each successful save of an existing Task creates a new version; earlier versions stay browsable on the Task detail page, and existing Runs keep the version they executed.

This page is for maintaining the library, not learning YAML — the task YAML language itself is covered in [Task anatomy and authoring workflow](/building/task-anatomy/).

## Screen overview: Runs list

Open **Runs** in the sidebar. The page header reads **Runs** ("Execution history across all tasks.") with a refresh button. A search box ("Search runs...") and a **Status** filter (**Running**, **Success**, **Completed**, **Failed**, **Cancelled**, **Pending**) sit above the table.

Columns: a selection checkbox, **ID**, **Task**, **Status**, **Trigger**, **Version**, **Duration** (sortable), and **Started** (sortable). Each row's ⋮ menu has **Delete**; selecting rows enables bulk **Delete** ("Active runs will be skipped."). Clicking a row opens the Run detail page.

<!-- screenshot: tasks-and-runs-runs-list | Runs list filtered to Failed status, showing the Trigger and Version columns and the bulk-selection checkboxes -->

## Run detail

The Run page header reads **Run #&lt;id&gt;** with a status badge and a subtitle linking to the Task and its version. A metadata bar shows the trigger type, duration (ticking live while running), items processed, started → completed timestamps, and the executor that ran it. A failed Run shows its error message in an alert.

Below the metadata:

- **Arguments** — the values passed to this Run, as read-only JSON with a **Copy** button.
- **Metrics** — per-step counters, shown when the Run reported metrics.
- The log viewer — the Run's captured output, streaming live for active Runs. See [Live run monitoring](/operations/live-run-monitoring/).

Header actions depend on state: **Stop Run** while the Run is `running` or `pending`; **Re-run** once it is terminal, which starts a new Run with the same arguments and connector mapping; and a ⋮ menu (terminal Runs only) with **Clear Logs** and **Delete Run**.

<!-- screenshot: tasks-and-runs-run-detail | Run detail with the metadata bar, an Arguments panel, and the log viewer streaming output for a running Run -->

:::callout{type="tip"}
**Re-run** creates a new Run rather than mutating history. If Connectors or the Task changed since the original Run, review the current state first — the rerun uses the Task's current version.
:::

## Related

- [Job runs](/using/job-runs/) — Runs executed as part of a Job's DAG
- [Task anatomy and authoring workflow](/building/task-anatomy/) — write the YAML the editor validates
- [Live run monitoring](/operations/live-run-monitoring/) — how live logs and status updates work
- [Connectors and connected accounts](/using/connectors/) — the stored Connectors bound in the run dialog
