From a06898ec92abf39b11a2bed7e9dcb35d43472ced Mon Sep 17 00:00:00 2001 From: Hare Date: Sat, 6 Jun 2026 14:27:40 +0900 Subject: [PATCH] ticket: close intake orchestrator handoff --- .../artifacts/.gitkeep | 0 .../artifacts/delegation-intent.md | 0 .../item.md | 4 +- .../resolution.md | 37 +++++++++ .../thread.md | 83 +++++++++++++++++++ .../thread.md | 20 ----- 6 files changed, 122 insertions(+), 22 deletions(-) rename .yoi/tickets/{open => closed}/20260605-210704-ticket-intake-orchestrator-handoff/artifacts/.gitkeep (100%) rename .yoi/tickets/{open => closed}/20260605-210704-ticket-intake-orchestrator-handoff/artifacts/delegation-intent.md (100%) rename .yoi/tickets/{open => closed}/20260605-210704-ticket-intake-orchestrator-handoff/item.md (97%) create mode 100644 .yoi/tickets/closed/20260605-210704-ticket-intake-orchestrator-handoff/resolution.md create mode 100644 .yoi/tickets/closed/20260605-210704-ticket-intake-orchestrator-handoff/thread.md delete mode 100644 .yoi/tickets/open/20260605-210704-ticket-intake-orchestrator-handoff/thread.md diff --git a/.yoi/tickets/open/20260605-210704-ticket-intake-orchestrator-handoff/artifacts/.gitkeep b/.yoi/tickets/closed/20260605-210704-ticket-intake-orchestrator-handoff/artifacts/.gitkeep similarity index 100% rename from .yoi/tickets/open/20260605-210704-ticket-intake-orchestrator-handoff/artifacts/.gitkeep rename to .yoi/tickets/closed/20260605-210704-ticket-intake-orchestrator-handoff/artifacts/.gitkeep diff --git a/.yoi/tickets/open/20260605-210704-ticket-intake-orchestrator-handoff/artifacts/delegation-intent.md b/.yoi/tickets/closed/20260605-210704-ticket-intake-orchestrator-handoff/artifacts/delegation-intent.md similarity index 100% rename from .yoi/tickets/open/20260605-210704-ticket-intake-orchestrator-handoff/artifacts/delegation-intent.md rename to .yoi/tickets/closed/20260605-210704-ticket-intake-orchestrator-handoff/artifacts/delegation-intent.md diff --git a/.yoi/tickets/open/20260605-210704-ticket-intake-orchestrator-handoff/item.md b/.yoi/tickets/closed/20260605-210704-ticket-intake-orchestrator-handoff/item.md similarity index 97% rename from .yoi/tickets/open/20260605-210704-ticket-intake-orchestrator-handoff/item.md rename to .yoi/tickets/closed/20260605-210704-ticket-intake-orchestrator-handoff/item.md index f89bd046..3263aba7 100644 --- a/.yoi/tickets/open/20260605-210704-ticket-intake-orchestrator-handoff/item.md +++ b/.yoi/tickets/closed/20260605-210704-ticket-intake-orchestrator-handoff/item.md @@ -2,12 +2,12 @@ id: 20260605-210704-ticket-intake-orchestrator-handoff slug: ticket-intake-orchestrator-handoff title: Ticket intake to orchestrator handoff -status: open +status: closed kind: task priority: P1 labels: [ticket, intake, orchestrator, handoff] created_at: 2026-06-05T21:07:04Z -updated_at: 2026-06-06T04:49:16Z +updated_at: 2026-06-06T05:27:40Z assignee: null legacy_ticket: null --- diff --git a/.yoi/tickets/closed/20260605-210704-ticket-intake-orchestrator-handoff/resolution.md b/.yoi/tickets/closed/20260605-210704-ticket-intake-orchestrator-handoff/resolution.md new file mode 100644 index 00000000..02f34ae6 --- /dev/null +++ b/.yoi/tickets/closed/20260605-210704-ticket-intake-orchestrator-handoff/resolution.md @@ -0,0 +1,37 @@ +Implemented Ticket Intake -> Orchestrator handoff for the workspace panel. + +Changes: +- Added typed handoff contract `TicketIntakeHandoff { orchestrator_pod, workspace_label }`. +- Extended `TicketRoleLaunchContext` with optional Intake handoff data. +- Rendered a `Panel handoff:` section into Intake launch input/history through the existing Ticket role launcher. +- The handoff section includes: + - workspace label; + - workspace Orchestrator Pod name; + - expected readiness/report fields; + - an explicit no-auto-implementation gate requiring Orchestrator routing/preflight and human Go before implementation. +- Added `TicketRoleLaunchOptions` / `launch_ticket_role_pod_with_options(...)` for bounded pre-run peer registration. +- Preserved `launch_ticket_role_pod(...)` as the default no-options wrapper. +- Panel Intake launch now passes Orchestrator handoff data and, when applicable, a pre-run peer registration request. +- `RegisterPeer` is sent before the first `Method::Run`, avoiding the controller's running-state rejection path. +- Peer registration warnings are non-fatal when Intake launch/run succeeds. +- No-Ticket workspaces remain Companion-only and expose no handoff path. +- Intake requests do not route through Companion/current Pod history or selected-Pod direct send. +- No automatic implementation scheduling/coder/reviewer spawning was added. +- `--multi` was not reintroduced. + +Validation after merge: +- `cargo test -p client ticket_role` +- `cargo test -p tui workspace_panel` +- `cargo test -p tui multi_pod` +- `cargo test -p yoi panel` +- `cargo check --workspace --all-targets` +- `cargo fmt --check` +- `git diff --check HEAD~1..HEAD` +- `cargo build -p yoi` +- `target/debug/yoi ticket doctor` +- `nix build .#yoi --no-link --print-out-paths` + +External review approved after one requested-changes cycle. + +Known follow-up: +- Final layout/display wording for handoff notices is deferred to panel tuning. diff --git a/.yoi/tickets/closed/20260605-210704-ticket-intake-orchestrator-handoff/thread.md b/.yoi/tickets/closed/20260605-210704-ticket-intake-orchestrator-handoff/thread.md new file mode 100644 index 00000000..0b716030 --- /dev/null +++ b/.yoi/tickets/closed/20260605-210704-ticket-intake-orchestrator-handoff/thread.md @@ -0,0 +1,83 @@ + + +## Created + +Created by LocalTicketBackend create. + +--- + + + +## Plan + +Preflight result: `implementation-ready` after Orchestrator lifecycle and composer target slices. + +This ticket should connect panel-launched Intake Pods to the workspace Orchestrator with an explicit, auditable handoff target. The handoff should be carried through the existing Ticket role launch path, preferably as a typed launch-context field rendered into the Intake first-run input/history, and peer metadata should be registered when feasible. It must not authorize automatic implementation. + +Detailed delegation intent is recorded in `artifacts/delegation-intent.md`. + + +--- + + + +## Review: approve + +External reviewer approved current HEAD after requested changes were addressed. + +Review summary: +- The previous blocking issue was fixed: `RegisterPeer` is now sent through the Ticket role launcher before the first `Method::Run`. +- Handoff uses a small typed `TicketIntakeHandoff` contract and `TicketRoleLaunchOptions`, not scheduler state. +- Intake launch input includes Orchestrator target and the no-auto-implementation gate. +- No-Ticket workspaces remain Companion-only/no handoff. +- Peer registration failures/skips are bounded warnings, not launch failures. +- Intake request does not route through Companion/current Pod history or selected-Pod direct send. +- No automatic implementation scheduling or `--multi` reintroduction. + + +--- + + + +## Closed + +Implemented Ticket Intake -> Orchestrator handoff for the workspace panel. + +Changes: +- Added typed handoff contract `TicketIntakeHandoff { orchestrator_pod, workspace_label }`. +- Extended `TicketRoleLaunchContext` with optional Intake handoff data. +- Rendered a `Panel handoff:` section into Intake launch input/history through the existing Ticket role launcher. +- The handoff section includes: + - workspace label; + - workspace Orchestrator Pod name; + - expected readiness/report fields; + - an explicit no-auto-implementation gate requiring Orchestrator routing/preflight and human Go before implementation. +- Added `TicketRoleLaunchOptions` / `launch_ticket_role_pod_with_options(...)` for bounded pre-run peer registration. +- Preserved `launch_ticket_role_pod(...)` as the default no-options wrapper. +- Panel Intake launch now passes Orchestrator handoff data and, when applicable, a pre-run peer registration request. +- `RegisterPeer` is sent before the first `Method::Run`, avoiding the controller's running-state rejection path. +- Peer registration warnings are non-fatal when Intake launch/run succeeds. +- No-Ticket workspaces remain Companion-only and expose no handoff path. +- Intake requests do not route through Companion/current Pod history or selected-Pod direct send. +- No automatic implementation scheduling/coder/reviewer spawning was added. +- `--multi` was not reintroduced. + +Validation after merge: +- `cargo test -p client ticket_role` +- `cargo test -p tui workspace_panel` +- `cargo test -p tui multi_pod` +- `cargo test -p yoi panel` +- `cargo check --workspace --all-targets` +- `cargo fmt --check` +- `git diff --check HEAD~1..HEAD` +- `cargo build -p yoi` +- `target/debug/yoi ticket doctor` +- `nix build .#yoi --no-link --print-out-paths` + +External review approved after one requested-changes cycle. + +Known follow-up: +- Final layout/display wording for handoff notices is deferred to panel tuning. + + +--- diff --git a/.yoi/tickets/open/20260605-210704-ticket-intake-orchestrator-handoff/thread.md b/.yoi/tickets/open/20260605-210704-ticket-intake-orchestrator-handoff/thread.md deleted file mode 100644 index 3d209f0c..00000000 --- a/.yoi/tickets/open/20260605-210704-ticket-intake-orchestrator-handoff/thread.md +++ /dev/null @@ -1,20 +0,0 @@ - - -## Created - -Created by LocalTicketBackend create. - ---- - - - -## Plan - -Preflight result: `implementation-ready` after Orchestrator lifecycle and composer target slices. - -This ticket should connect panel-launched Intake Pods to the workspace Orchestrator with an explicit, auditable handoff target. The handoff should be carried through the existing Ticket role launch path, preferably as a typed launch-context field rendered into the Intake first-run input/history, and peer metadata should be registered when feasible. It must not authorize automatic implementation. - -Detailed delegation intent is recorded in `artifacts/delegation-intent.md`. - - ----