Backend (platform-service): - New `draft` stage (not claimable; scheduler only takes queued/blocked). - submitJob accepts `draft: true` → parks a new/superseded job as a draft. - updateDraft(): edit prompt/config in place while draft/queued/blocked; recomputes contentHash; rejected (conflict) once picked up (assigned+). - submitDraft(): promote draft → queued (or blocked on unmet deps); idempotent. - Routes: PATCH /fleet/jobs/:id/draft, POST /fleet/jobs/:id/submit. - tracker-bridge: map draft → item status `open`. Tests + FLEET_STAGES updated. Frontend (tracker-web): - New-Job form: add "Save as draft" alongside "Submit". - Job detail: edit the prompt + Save while draft/queued/blocked, "Submit" a draft, and lock it read-only once a factory picks it up. Generated with [Devin](https://cli.devin.ai/docs) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> |
||
|---|---|---|
| .. | ||
| cowork-service | ||
| extraction-service | ||
| mcp-server | ||
| monitoring | ||
| platform-service | ||