Add task summaries, closed-task search and a summary turn before discard

This commit is contained in:
Ian Gulliver
2026-10-16 10:08:08 -07:00
parent 2107a43ef2
commit fd63a0dfbc
25 changed files with 1013 additions and 268 deletions
+12 -4
View File
@@ -344,10 +344,16 @@ paths:
- { name: taskId, in: path, required: true, schema: { type: string } }
post:
operationId: discardTask
description: Removes the task's worktree and branch without merging. The task's record and events remain.
description: >
Gives the task's agent one dedicated turn to write the task summary, started at once when its session is
idle (or in a new session when it has none) and otherwise as soon as the running turn ends, with no other
turn admitted meanwhile; drops any held merge; and when that turn ends however it ends, removes the task's
worktree and branch without merging and marks the task discarded. The task's record, summary and events
remain. Refused while the task is merging or already being discarded; on a task whose cleanup failed, retries
the cleanup.
responses:
"200":
description: The discarded task.
"202":
description: The task, still active, whose discard was started.
content:
application/json:
schema: { $ref: "#/components/schemas/Task" }
@@ -908,7 +914,7 @@ components:
Task:
type: object
required: [id, project_id, title, merge_title, branch, worktree_path, base_ref, port_base, color, status, created_by, created_at, reviewing]
required: [id, project_id, title, merge_title, branch, worktree_path, base_ref, port_base, color, status, created_by, created_at, reviewing, merging, discarding]
properties:
id: { type: string }
project_id: { type: string }
@@ -935,6 +941,8 @@ components:
workflow_run: { type: string, description: "With workflow: the id every task of one run of the workflow shares." }
workflow_stage: { type: string, description: "With workflow: the name of the stage this task runs." }
reviewing: { type: boolean, description: "Whether a review of one of the task's snapshots is running." }
merging: { type: boolean, description: "Whether a Merge was started and its turn hasn't ended yet." }
discarding: { type: boolean, description: "Whether a Discard was started and the task isn't closed yet: its summary turn is waiting for the running turn, running, or done and the task is being removed." }
Todo:
type: object