Completed tasks
Tasks in the Done column are archived automatically: the session is suspended with its context preserved, and the card leaves the board. The Done column keeps a Completed (N) strip below its header with the most recent archived cards, each with its own delete control, and a View all button at the bottom of that list. Both open the completed-tasks dialog, which is where archived work lives - browse it, audit what each session cost, and bring tasks back when they need another round.
The completed tasks table
Section titled “The completed tasks table”Archived tasks render as a sortable table. A search box in the dialog header filters rows by title and description as you type, and the footer totals whatever is showing: the task count (or “N of M tasks” while a search is active), total cost, tokens, files changed, and lines added and removed. Click any column header to sort by it:
| Column | What it shows |
|---|---|
| Title | The task title, with the first line of its description beneath |
| Cost | Total API cost of the task’s sessions |
| Agent runtime | How long an agent worked on the task, summed over every conversation |
| Tokens | Total tokens consumed |
| Tools | Tool calls made across the task’s sessions |
| Files | Files changed |
| Lines | Lines added and removed |
| Completed | When the task was archived (the default sort, newest first) |
Clicking a row selects it; the actions on each row do the rest:
- The View details (eye) button opens the completed task view
- Restore to board opens a popover listing the board’s columns - pick one and the task returns there
- Delete task removes the task, its session history, and any worktree it still has, after a confirmation you can tick Don’t ask again on
Right-clicking a row opens the same choices as a menu: copy the task’s ID, Open (the completed task view), Changes (only while the task’s worktree still exists), Restore to with one entry per column, and Delete permanently.
When an archived task’s session is old enough that restoring it may no longer resume cleanly, a dot beside its Completed time says so: yellow after a day (“Session may need to be re-created”), gray after a week (“Session may be expired”). Agent CLIs prune their on-disk session files over time, and that is what the dot is guessing at.
The completed task view
Section titled “The completed task view”View details on a row, or Open in its menu, opens the task’s window as the completed task view. A strip under the title reads, left to right:
- Started - the task’s first move out of To Do
- Ended - its move into Done
- Elapsed - the time between the two
- Agent runtime - how long an agent worked on the task, summed over every conversation
- Changes - lines added and removed, and the number of files changed
- Pull request - its number and state; a click opens it
- Cost - what every run of an agent cost
The strip ends on Completed, or on Exited with the exit code when the agent’s last run ended with an error. A metric with nothing to show is left out, so a task with no pull request has no Pull request. The strip always stays on one row: in a narrow window the dates drop their time first, then the status keeps only its icon, and the full value moves into a tooltip.
Under the strip are three tabs, Summary, Usage, and Description, with View conversation on the right, which opens the task’s full transcript. The arrow keys, Home, and End move between the tabs. Description is the task as it was written, with its labels and attachments.
Changes come from git on your machine, with or without a pull request. Each time a session ends, Kangentic measures the task’s branch against the point where it left its base. Once the pull request is merged, or the task is archived with a measurement already stored, the measurement is kept, so resetting the branch after the work landed does not overwrite it.
Before v0.46.0, cost and agent runtime counted a conversation again on every resume. Each resume reports its conversation’s running total, and the old reads added those totals together, so a task that resumed often read several times its real cost. v0.46.0 takes one value per conversation and adds the conversations. The fix is in the read, so it applies to tasks archived before the update too, and their cost and agent runtime can drop once you update.
Summary
Section titled “Summary”The Task summary card shows the summary the Knowledge Graph wrote for the task. When there is none, the card says why: Summary pending, what summaries still need (Needs an agent or Needs a model), Task summaries are off, or Knowledge Graph indexing is off. An Open Settings button sits beside every reason a setting can fix. The agent’s last message shows in the summary’s place, cut to a few lines with Show all.
Route draws each column the task worked in, in board order, each one sized to its share of the time. A column the task came back to, with two or more stays of a minute or longer, lists each stay under it with its date and length. Kangentic did not always log column moves, so a task that started before its first logged move says Moves logged from and the date the log begins.
Commits and Files changed list what the Knowledge Graph’s index linked to the task, eight files at a time with Show all for the rest. With indexing off, neither card appears.
The task below went through Executing and Code Review twice each before it finished. Its strip gives the dates, agent runtime, changes, pull request, cost, and status, and its Summary tab shows the written summary, that route with each stay, two commits, and the four files they changed.
Runs lists each run of an agent, grouped by conversation: the task’s main conversation, and one for each column that runs in its own session, such as an isolated Code Review. Each run shows the columns it ran in, when it started, its model, effort, and permission mode, its compactions, and its own runtime and cost. A resumed conversation reports a running total, so each run shows only what it added, and the Total row matches the strip. A run whose agent exited with an error is marked beside its start time, because the strip’s status reads only the last run.
Models and tokens lists each model’s turns and its fresh input, cache write, cache read, and output tokens, with subagent work on its own row. With indexing off, the card falls back to each model’s input and output from the session totals, and says From session totals.
Background calls lists the agent calls Kangentic made for the task on its own, outside the task’s terminal: a Condition check for each automation a check answered, a Workflow step, Generate title, Write summary, and Name terminal. Each row has its column, model, effort, runtime, cost, and tokens, and ten rows show before Show all. Outcome reads Ran when the automation ran, Skipped when its Condition was not met or a later gate stopped it, and Error when the automation failed or was interrupted, or the check never answered. Hover the Outcome for the reason. One check can answer several automations, so the Total counts each call once. These calls also feed the Background card on the usage dashboard.
The same task’s Usage tab has four runs across its main conversation and its Code Review conversation, then its tokens by model and kind, and two background calls: one that ran its automation and one that was skipped.
The tool table
Section titled “The tool table”Each run’s tool-call count opens a table of its calls per tool, and the Total’s count opens the same table for the whole task, so its rows add up to the tool-call count: Calls, then Time and Avg when durations were measured, Tokens when the agent can estimate them from its transcript, and a Failed column when any call was interrupted. Cost and input/output columns appear for agents that emit per-tool telemetry.
Time is each tool’s own run time. Calls that waited for your answer or approval are left out of Time and Avg, and the Time header’s tooltip says how many. Before v0.44.0 one call that never finished could make every later call of that tool report the gap since the previous call, so the first time v0.44.0 opens a project it rebuilds the stored per-tool durations of earlier sessions from their saved event logs. An old task’s Time column can change after the update; a session whose log is gone keeps its numbers. Tokens estimates how much of the conversation each tool’s output took up; it is not billed usage, and today only Claude provides it. Every column except Failed sorts on a click, Calls first by default. The tool-call count in a running task’s context bar opens the same table for that session, across every run since it started, so a resume after an app restart or a pause does not reset it. Tokens for a run that ended when the app quit are filled in from the agent’s transcript once the session resumes.
Bulk operations
Section titled “Bulk operations”Select multiple rows to act on them together:
- Restore - a popover picks the target column, and every selected task moves back to the board at once
- Delete - permanently remove the selected tasks along with their sessions and worktrees
Resuming archived work
Section titled “Resuming archived work”Restoring a task to an active column resumes its suspended session with full context intact - the agent picks up the conversation where it left off. Moving a task to Done frees its worktree’s disk space but keeps everything needed to resume; dragging it back to an active column recreates the worktree (see Worktree lifecycle).
The move out of Done is the route back, and the only one. Since v0.36.0, pressing Resume on a task still sitting in Done is refused with “This task is complete. Move it out of Done to continue working on it.” Resuming in place would rebuild the worktree and put a live agent on a task with no board card, burning quota with nothing on screen to notice it. Moving the task out unarchives it first and then spawns through the normal path. See When resume is refused.
The unarchive happens the moment you move the card, not when the spawn lands, and the card reports the restore as in progress rather than as Paused - so a slow worktree rebuild reads as work happening rather than as a stall.
Finding archived tasks
Section titled “Finding archived tasks”Quick Find searches archived tasks too - hits that are archived carry a small archived badge so you can tell finished work from live cards in the results.
See also
Section titled “See also”- Backlog and imports - the other end of the pipeline, where tasks wait before reaching the board
- Creating tasks - authoring tasks and the task lifecycle
- Session persistence - how suspended sessions survive restarts
- Worktrees and pull requests - what happens to a task’s worktree at each move
Kangentic is free and open source. A star helps other people find it.
Star on GitHub