feat(web+store): needs_attention 任务显示在审核区,附失败原因

- pendingApprovals 扩展到包含 needs_attention,subquery 取最近 executor 失败 error
- Task 类型增加 lastRunError 字段,mappers 映射
- 审核区(renderGates)将 needs_attention 渲染为独立橙色卡片,
  展示「需人工确认」标签 + 具体失败原因 + 重新排队/取消按钮
- i18n zh/en 补充 attnLabel/attnReason/attnRequeue/attnCancel/toastRequeued

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-06-14 14:46:21 +08:00
parent 4a2b4e1094
commit 433b2dc232
5 changed files with 59 additions and 6 deletions
+2
View File
@@ -20,6 +20,7 @@ export interface TaskRow {
next_eligible_at: string | null;
created_at: string; updated_at: string;
source_ref: string | null;
last_run_error?: string | null; // pendingApprovals 扩展字段(subquery
}
export interface ApprovalRow {
id: string; task_id: string; gate: string; action: string;
@@ -75,6 +76,7 @@ export function rowToTask(r: TaskRow, approvals: ApprovalRecord[] = []): Task {
approvals, result: r.result ? parseResult(r.result) : null,
assignee: r.assignee as Task['assignee'], retryBaseline: r.retry_baseline ?? 0,
nextEligibleAt: r.next_eligible_at ?? null,
lastRunError: r.last_run_error ?? null,
createdAt: r.created_at, updatedAt: r.updated_at,
};
}