From 4eefc0f87eb72b887662a5d5724c6e81174e9997 Mon Sep 17 00:00:00 2001 From: Hare Date: Sun, 7 Jun 2026 11:35:26 +0900 Subject: [PATCH] ticket: record orchestrator inprogress contract --- .../item.md | 2 +- .../thread.md | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/.yoi/tickets/open/20260607-020215-workspace-panel-orchestrator-queue-automation/item.md b/.yoi/tickets/open/20260607-020215-workspace-panel-orchestrator-queue-automation/item.md index 54f9442d..21cf9ec4 100644 --- a/.yoi/tickets/open/20260607-020215-workspace-panel-orchestrator-queue-automation/item.md +++ b/.yoi/tickets/open/20260607-020215-workspace-panel-orchestrator-queue-automation/item.md @@ -8,7 +8,7 @@ priority: P1 labels: [panel, orchestrator, ticket, automation, workflow] workflow_state: intake created_at: 2026-06-07T02:02:15Z -updated_at: 2026-06-07T02:02:15Z +updated_at: 2026-06-07T02:35:20Z assignee: null legacy_ticket: null --- diff --git a/.yoi/tickets/open/20260607-020215-workspace-panel-orchestrator-queue-automation/thread.md b/.yoi/tickets/open/20260607-020215-workspace-panel-orchestrator-queue-automation/thread.md index b0678e7f..3f99748d 100644 --- a/.yoi/tickets/open/20260607-020215-workspace-panel-orchestrator-queue-automation/thread.md +++ b/.yoi/tickets/open/20260607-020215-workspace-panel-orchestrator-queue-automation/thread.md @@ -5,3 +5,25 @@ Created by LocalTicketBackend create. --- + + + +## Decision + +## In-progress acceptance contract + +`workflow_state = inprogress` should be the durable Orchestrator acceptance marker, not merely proof that a coder Pod is already running. + +Contract: +- `ready`: materialized Ticket waiting for the human Queue gate. +- `queued`: human has authorized Orchestrator routing; Orchestrator should inspect Ticket/workspace state and start if unblocked. +- `inprogress`: Orchestrator has accepted the queued Ticket and owns coordination/progress/block/failure reporting until completion or explicit defer/block. + +Ordering invariant: +- Orchestrator must not create implementation worktrees or spawn implementation/review Pods for a queued Ticket unless the Ticket has already been accepted as `inprogress`, or the same typed operation atomically accepts it. +- If `queued -> inprogress` fails, do not spawn implementation Pods. +- If side effects fail after `inprogress` acceptance, record the failure/block under the in-progress Ticket rather than silently returning to queued or starting a duplicate path. + +Short-term implementation may enforce this through Orchestrator workflow/prompt text plus the existing typed workflow-state tool. Longer-term, prefer a typed Orchestrator operation such as `AcceptQueuedTicket` / `StartTicketWork` that validates `queued`, records the acceptance transition, establishes any local claim/lease, and only then allows worktree/Pod launch. + +---