## ADDED Requirements ### Requirement: Task list API endpoint Orchestrator SHALL 提供 `GET /api/v1/tasks` 端点,返回任务列表的结构化 JSON。 #### Scenario: List all tasks - **WHEN** 发送 `GET /api/v1/tasks` - **THEN** SHALL 返回 JSON 数组,每项包含:task_id, source, task_type, priority, status, assigned_agent_id, retry_count, max_retries, created_at, assigned_at, started_at, completed_at #### Scenario: Filter by status - **WHEN** 发送 `GET /api/v1/tasks?status=running` - **THEN** SHALL 仅返回 status 为 `running` 的任务 #### Scenario: Filter by agent - **WHEN** 发送 `GET /api/v1/tasks?agent_id=worker-03` - **THEN** SHALL 仅返回 assigned_agent_id 为 `worker-03` 的任务 ### Requirement: Task retry API endpoint Orchestrator SHALL 提供 `POST /api/v1/tasks/{task_id}/retry` 端点。 #### Scenario: Retry a failed task - **WHEN** 发送 `POST /api/v1/tasks/org/repo#42/retry` - **AND** 任务当前状态为 `failed` 或 `agent_lost` - **THEN** SHALL 将任务状态转换为 `assigned`,返回更新后的任务 JSON #### Scenario: Retry a non-retryable task - **WHEN** 发送 `POST /api/v1/tasks/org/repo#42/retry` - **AND** 任务当前状态不是 `failed` 或 `agent_lost` - **THEN** SHALL 返回 400 错误,说明任务不在可重试状态