diff --git a/docs/design/v2.7-subtask-model.md b/docs/design/v2.7-subtask-model.md index 6652abf..0056444 100644 --- a/docs/design/v2.7-subtask-model.md +++ b/docs/design/v2.7-subtask-model.md @@ -140,22 +140,27 @@ parent_task TEXT -- 子 Task 填父 Task 的 id,顶层 Task 为 NULL - 子 Task 有自己独立的 `status`、`assignee`、`depends_on`、`stage` - 子 Task 的 `stage` 字段绑定到父 Task 的 `stages_json` 中的某个 stage id -**父 Task 状态 = 子 Task 聚合**: +**父 Task 状态 = 子 Task 聚合**(v2.8 更新): | 父 Task 状态 | 推导规则 | |-------------|---------| | `pending` | 所有子 Task 都是 pending,或无子 Task | +| `escalated` | 有子 Task escalated(v2.8 新增,视同 working) | +| `waiting_human` | 有子 Task waiting_human(v2.8/M3 新增,视同 working) | | `working` | 有子 Task 在 claimed / working | | `review` | 有子 Task 在 review | | `done` | 所有子 Task 都是 done | | `failed` | 有子 Task failed 且无 active 子 Task | | `blocked` | 有子 Task blocked 且无 active 子 Task | | `cancelled` | 用户/AI 取消(手动设置,**不参与聚合**) | +| `paused` | 用户暂停(手动设置,**不参与聚合**) | -**聚合优先级**(子 Task 同时满足多个条件时): -review > working > pending > blocked > failed +**聚合优先级**(v2.8 更新): +escalated > waiting_human > review > working > pending > failed > blocked -**手动状态保护**:父 Task 被手动设为 cancelled 后,聚合不覆盖(与 Card 层的 MANUAL_STATUSES 机制一致)。 +**不参与聚合**:paused, cancelled(手动状态) + +**手动状态保护**:父 Task 被手动设为 cancelled 或 paused 后,聚合不覆盖。 **聚合刷新时机**:每次 Ticker tick 时,全量扫描有子 Task 的父 Task,刷新聚合状态。