feat: expose reliable collection activity and stage estimates

This commit is contained in:
2026-10-13 16:50:53 +08:00
parent 03601ab0aa
commit 146d468ff4
15 changed files with 557 additions and 46 deletions
@@ -750,6 +750,32 @@ components:
progress: {$ref: '#/components/schemas/Progress'}
validation: {$ref: '#/components/schemas/Validation'}
latestAttempt: {$ref: '#/components/schemas/Attempt'}
dependencyState:
type: string
enum: [NONE, WAITING_CONFIRMED, WAITING_UNCONFIRMED, SATISFIED, FAILED]
description: 仅直接upstreamTaskId且账号及用途一致证明依赖;时间窗口相交不构成依赖。
blockingReason: {type: string, nullable: true, description: 当前执行阻塞原因码,与恢复操作资格actionBlockReason分开}
progressSourceTaskNo: {type: string, nullable: true, description: 确认等待时指向直接上游,否则指向本任务;计数仍保留在各自Task.progress,不复制到本仓}
stageEstimate: {$ref: '#/components/schemas/StageEstimate'}
StageEstimate:
type: object
description: 本任务当前阶段估算,不能当作全任务ETA;进度与估算整体按progressIdentity和validUntil接收。计数包含复用时测速基线重建,采样仅来自已提交检查点。
properties:
status: {type: string, enum: [AVAILABLE, UNAVAILABLE, PAUSED]}
progressIdentity: {type: string}
completed: {type: string, nullable: true}
total: {type: string, nullable: true}
sampleFrom: {type: string, format: date-time, nullable: true}
sampleUntil: {type: string, format: date-time, nullable: true}
completedDelta: {type: string, nullable: true}
ratePerSecond: {type: number, nullable: true}
remainingSeconds: {type: string, nullable: true}
estimatedAt: {type: string, format: date-time}
validUntil: {type: string, format: date-time, nullable: true}
unavailableReason:
type: string
nullable: true
enum: [TERMINAL, PAUSED, HEALTH_UNCONFIRMED, TOTAL_UNKNOWN, INVALID_PROGRESS, STAGE_COMPLETE, SAMPLING, NO_RECENT_PROGRESS, SAMPLE_EXPIRED, INVALID_SAMPLE]
TaskDetail:
type: object
properties:
@@ -795,6 +821,11 @@ components:
revisionReviewStatus: {type: string, nullable: true}
inventoryDailySamples: {$ref: '#/components/schemas/InventoryDailySamples'}
currentTask: {$ref: '#/components/schemas/Task'}
activeTasks:
type: array
maxItems: 8
description: 本仓本类型活动或等待任务,RUNNING优先,再按创建时间倒序;currentTask取活动首项,无活动时取最近任务。
items: {$ref: '#/components/schemas/Task'}
sharedUpstream: {$ref: '#/components/schemas/Task'}
protection: {$ref: '#/components/schemas/Protection'}
Overview:
@@ -805,6 +836,10 @@ components:
collectionMode: {type: string, nullable: true}
observedAt: {type: string, format: date-time, nullable: true}
warehouses: {type: array, items: {$ref: '#/components/schemas/Warehouse'}}
accountActivity:
allOf: [{$ref: '#/components/schemas/Task'}]
nullable: true
description: 来源账号明确活动指针指向的正式采集任务,独立展示,不代表任一仓库的依赖或数量。
Progress:
type: object
properties: