Skip to main content

Tasks

Tasks are batch agentic AI sessions that msg.ZenTestAI starts automatically — for example when the onboarding wizard generates tests for your application, when a team scan explores it, or when test coverage is recomputed. A task bundles many small pieces of AI work into subtasks that run one after another, each in its own AI Agent session, so a large job stays reviewable piece by piece.

You find them under AI Assistants → Tasks in the sidebar.

The task list

The list shows every task of the tenant with its title, type, status, subtask progress and creation time, and can be filtered by status and type. Task types include Create tests (wizard), Team scan, Update coverage and Generate embeddings.

A task moves through these statuses:

StatusMeaning
PendingCreated, but not started yet — some tasks wait for you to press Execute.
RunningSubtasks are being worked through one after another.
PausedA subtask did not finish, so the remaining ones were not started (see below).
CompletedAll subtasks finished successfully (or were skipped).
Partially failedThe task ran to the end, but some subtasks failed.
CancelledThe task was cancelled.

The task details view

Opening a task shows its subtasks in order — each with its own status (Pending, Running, Completed, Failed, Skipped, Cancelled) and a link to the AI Agent session that worked on it — next to the transcript of the currently relevant session. Per subtask you can start, skip, unskip or cancel; on the task itself you can Execute it (run the subtasks one after another) or Cancel it.

When a subtask does not finish, the task pauses instead of ploughing on: an Execution paused notice explains that the remaining subtasks were not started. You can answer the subtask's AI Agent to pick up where it stopped, start the subtask again, or Continue execution to move past it.

Live updates

While a task is Running or Paused, the details view keeps itself up to date by polling the server — deliberately one request at a time: the next refresh is only scheduled once the previous one has been answered. A backend that responds slowly is therefore polled less often instead of being flooded, and repeated failures make the refresh back off further and further.

After several failed updates in a row the view stops refreshing and shows a warning:

Live updates paused — Several updates in a row failed or timed out, so automatic refreshing stopped to avoid overloading the server. The shown state may be outdated — use Retry to resume.

Press Retry to resume — and any successful action (Execute, Cancel, or a subtask action) lifts the pause as well, so recovery never needs a special step. The task list itself does not poll; use its Refresh button, and if loading the list fails you get the same explicit Retry instead of a silent empty list.