diff --git a/work-items/open/20260605-190330-ticket-role-pod-launcher/artifacts/.gitkeep b/work-items/closed/20260605-190330-ticket-role-pod-launcher/artifacts/.gitkeep similarity index 100% rename from work-items/open/20260605-190330-ticket-role-pod-launcher/artifacts/.gitkeep rename to work-items/closed/20260605-190330-ticket-role-pod-launcher/artifacts/.gitkeep diff --git a/work-items/open/20260605-190330-ticket-role-pod-launcher/artifacts/delegation-intent.md b/work-items/closed/20260605-190330-ticket-role-pod-launcher/artifacts/delegation-intent.md similarity index 100% rename from work-items/open/20260605-190330-ticket-role-pod-launcher/artifacts/delegation-intent.md rename to work-items/closed/20260605-190330-ticket-role-pod-launcher/artifacts/delegation-intent.md diff --git a/work-items/open/20260605-190330-ticket-role-pod-launcher/artifacts/implementation-report.md b/work-items/closed/20260605-190330-ticket-role-pod-launcher/artifacts/implementation-report.md similarity index 100% rename from work-items/open/20260605-190330-ticket-role-pod-launcher/artifacts/implementation-report.md rename to work-items/closed/20260605-190330-ticket-role-pod-launcher/artifacts/implementation-report.md diff --git a/work-items/open/20260605-190330-ticket-role-pod-launcher/artifacts/review.md b/work-items/closed/20260605-190330-ticket-role-pod-launcher/artifacts/review.md similarity index 100% rename from work-items/open/20260605-190330-ticket-role-pod-launcher/artifacts/review.md rename to work-items/closed/20260605-190330-ticket-role-pod-launcher/artifacts/review.md diff --git a/work-items/open/20260605-190330-ticket-role-pod-launcher/item.md b/work-items/closed/20260605-190330-ticket-role-pod-launcher/item.md similarity index 99% rename from work-items/open/20260605-190330-ticket-role-pod-launcher/item.md rename to work-items/closed/20260605-190330-ticket-role-pod-launcher/item.md index 6a8f7dc4..a0b1d375 100644 --- a/work-items/open/20260605-190330-ticket-role-pod-launcher/item.md +++ b/work-items/closed/20260605-190330-ticket-role-pod-launcher/item.md @@ -2,12 +2,12 @@ id: 20260605-190330-ticket-role-pod-launcher slug: ticket-role-pod-launcher title: Ticket role Pod launcher -status: open +status: closed kind: task priority: P1 labels: [ticket, pod, role, orchestration] created_at: 2026-06-05T19:03:30Z -updated_at: 2026-06-05T19:32:53Z +updated_at: 2026-06-05T19:34:06Z assignee: null legacy_ticket: null --- diff --git a/work-items/closed/20260605-190330-ticket-role-pod-launcher/resolution.md b/work-items/closed/20260605-190330-ticket-role-pod-launcher/resolution.md new file mode 100644 index 00000000..b0f0b678 --- /dev/null +++ b/work-items/closed/20260605-190330-ticket-role-pod-launcher/resolution.md @@ -0,0 +1,51 @@ +Ticket role Pod launcher is complete and merged. + +Implementation: + +- `4bf0e27 feat: add ticket role pod launcher` +- `dd70517 fix: harden ticket role launch execution` +- merge commit: `3d6c1ab merge: add ticket role launcher` + +Summary: + +- Added `crates/client/src/ticket_role.rs` as a reusable client-level Ticket role launch layer. +- Added launch planning for fixed Ticket roles using `.yoi/ticket.config.toml`: + - intake + - orchestrator + - coder + - reviewer + - investigator +- Kept TUI free from `pod` internals; TUI can use `client`. +- Generated first-run input as `Segment::WorkflowInvoke` plus `Segment::Text`. +- Kept Profile responsible for durable system/role behavior. +- Did not add role-level `system_instruction` support. +- Exposed unresolved `launch_prompt` refs in plans/text without treating them as system instructions. +- Added execution API using `spawn_pod`, `PodClient`, and `Method::Run` with acceptance confirmation. +- Top-level execution now rejects `profile = "inherit"` with `UnsupportedInheritProfile` rather than passing invalid `--profile inherit` semantics. +- Run delivery waits for acceptance evidence (`UserMessage`, `InvokeStart UserSend`, or `TurnStart`) and reports error/close/timeout. + +Review: + +- External sibling review initially requested changes for two blockers: + 1. invalid top-level execution of `inherit` profile; + 2. no first-run acceptance confirmation. +- Both blockers were fixed in `dd70517`. +- Re-review approved with no blockers. + +Non-blocker follow-ups: + +- Add fake-socket/client execution tests for acceptance/rejection/close/timeout behavior. +- Add aggregate prompt/list caps; current implementation bounds individual fields but not list length globally. +- TUI/CLI integration should surface `UnsupportedInheritProfile` clearly or require concrete role profiles until an inheritance-aware launch path exists. + +Post-merge validation passed: + +- `cargo test -p client ticket` +- `cargo test -p ticket` +- `cargo check --workspace --all-targets` +- `cargo fmt --check` +- `git diff --check` +- `./tickets.sh doctor` +- `nix build .#yoi --no-link` + +This clears the prerequisite for `tui-ticket-role-actions`. diff --git a/work-items/open/20260605-190330-ticket-role-pod-launcher/thread.md b/work-items/closed/20260605-190330-ticket-role-pod-launcher/thread.md similarity index 90% rename from work-items/open/20260605-190330-ticket-role-pod-launcher/thread.md rename to work-items/closed/20260605-190330-ticket-role-pod-launcher/thread.md index dcbc8d21..4d0f336c 100644 --- a/work-items/open/20260605-190330-ticket-role-pod-launcher/thread.md +++ b/work-items/closed/20260605-190330-ticket-role-pod-launcher/thread.md @@ -448,4 +448,63 @@ Yes. This clears the launcher prerequisite for `tui-ticket-role-actions`. +--- + + + +## Closed + +Ticket role Pod launcher is complete and merged. + +Implementation: + +- `4bf0e27 feat: add ticket role pod launcher` +- `dd70517 fix: harden ticket role launch execution` +- merge commit: `3d6c1ab merge: add ticket role launcher` + +Summary: + +- Added `crates/client/src/ticket_role.rs` as a reusable client-level Ticket role launch layer. +- Added launch planning for fixed Ticket roles using `.yoi/ticket.config.toml`: + - intake + - orchestrator + - coder + - reviewer + - investigator +- Kept TUI free from `pod` internals; TUI can use `client`. +- Generated first-run input as `Segment::WorkflowInvoke` plus `Segment::Text`. +- Kept Profile responsible for durable system/role behavior. +- Did not add role-level `system_instruction` support. +- Exposed unresolved `launch_prompt` refs in plans/text without treating them as system instructions. +- Added execution API using `spawn_pod`, `PodClient`, and `Method::Run` with acceptance confirmation. +- Top-level execution now rejects `profile = "inherit"` with `UnsupportedInheritProfile` rather than passing invalid `--profile inherit` semantics. +- Run delivery waits for acceptance evidence (`UserMessage`, `InvokeStart UserSend`, or `TurnStart`) and reports error/close/timeout. + +Review: + +- External sibling review initially requested changes for two blockers: + 1. invalid top-level execution of `inherit` profile; + 2. no first-run acceptance confirmation. +- Both blockers were fixed in `dd70517`. +- Re-review approved with no blockers. + +Non-blocker follow-ups: + +- Add fake-socket/client execution tests for acceptance/rejection/close/timeout behavior. +- Add aggregate prompt/list caps; current implementation bounds individual fields but not list length globally. +- TUI/CLI integration should surface `UnsupportedInheritProfile` clearly or require concrete role profiles until an inheritance-aware launch path exists. + +Post-merge validation passed: + +- `cargo test -p client ticket` +- `cargo test -p ticket` +- `cargo check --workspace --all-targets` +- `cargo fmt --check` +- `git diff --check` +- `./tickets.sh doctor` +- `nix build .#yoi --no-link` + +This clears the prerequisite for `tui-ticket-role-actions`. + + ---