diff --git a/.yoi/tickets/open/20260607-001651-workspace-panel-companion-pod-lifecycle/artifacts/.gitkeep b/.yoi/tickets/closed/20260607-001651-workspace-panel-companion-pod-lifecycle/artifacts/.gitkeep similarity index 100% rename from .yoi/tickets/open/20260607-001651-workspace-panel-companion-pod-lifecycle/artifacts/.gitkeep rename to .yoi/tickets/closed/20260607-001651-workspace-panel-companion-pod-lifecycle/artifacts/.gitkeep diff --git a/.yoi/tickets/open/20260607-001651-workspace-panel-companion-pod-lifecycle/item.md b/.yoi/tickets/closed/20260607-001651-workspace-panel-companion-pod-lifecycle/item.md similarity index 97% rename from .yoi/tickets/open/20260607-001651-workspace-panel-companion-pod-lifecycle/item.md rename to .yoi/tickets/closed/20260607-001651-workspace-panel-companion-pod-lifecycle/item.md index 06e80671..33c7cdc4 100644 --- a/.yoi/tickets/open/20260607-001651-workspace-panel-companion-pod-lifecycle/item.md +++ b/.yoi/tickets/closed/20260607-001651-workspace-panel-companion-pod-lifecycle/item.md @@ -2,13 +2,13 @@ id: 20260607-001651-workspace-panel-companion-pod-lifecycle slug: workspace-panel-companion-pod-lifecycle title: Workspace panel Companion Pod lifecycle -status: open +status: closed kind: task priority: P2 labels: [tui, panel, companion, pod] -workflow_state: ready +workflow_state: done created_at: 2026-06-07T00:16:51Z -updated_at: 2026-06-07T20:45:05Z +updated_at: 2026-06-07T20:45:36Z assignee: null legacy_ticket: null --- diff --git a/.yoi/tickets/closed/20260607-001651-workspace-panel-companion-pod-lifecycle/resolution.md b/.yoi/tickets/closed/20260607-001651-workspace-panel-companion-pod-lifecycle/resolution.md new file mode 100644 index 00000000..41f8f352 --- /dev/null +++ b/.yoi/tickets/closed/20260607-001651-workspace-panel-companion-pod-lifecycle/resolution.md @@ -0,0 +1,31 @@ +Implemented, reviewed, merged, and validated. + +Summary: +- Added a real workspace Companion Pod lifecycle for `yoi panel`. +- Companion Pod id/name is resolved from the workspace directory basename; for this repository it is exactly `yoi`. +- No `-companion` suffix or separate companion-specific id was introduced for the normal workspace Companion. +- The panel reuses live Companion Pods and restores restorable Companion Pods before spawning a missing Companion. +- The workspace Orchestrator remains a separate identity such as `yoi-orchestrator`. +- Panel close does not stop the Companion. +- The `Companion` composer target now sends user text to the workspace Companion Pod through `Method::Run`, not to arbitrary selected Pods. +- Empty composer behavior still preserves selected-Pod open/attach behavior. +- Busy/unavailable Companion states preserve the draft and surface bounded diagnostics. +- Ticket Intake remains separate and does not append Intake text to Companion history. +- Companion is not modeled as a Ticket role and does not use `.yoi/ticket.config.toml` role slots. +- No selected-Pod direct send, `--multi`, or `:ticket` surface was reintroduced. + +Implementation: +- Child commit: `ba0c9d5 feat: wire panel companion lifecycle` +- Merge commit: `merge: companion pod lifecycle` + +Review: +- External reviewer `companion-lifecycle-reviewer-20260607` approved with no blockers. + +Validation after merge: +- `cargo test -p tui companion --lib` +- `cargo test -p tui multi_pod --lib` +- `cargo test -p tui workspace_panel --lib` +- `cargo test -p tui --lib` +- `cargo fmt --check` +- `git diff --check` +- `target/debug/yoi ticket doctor` diff --git a/.yoi/tickets/open/20260607-001651-workspace-panel-companion-pod-lifecycle/thread.md b/.yoi/tickets/closed/20260607-001651-workspace-panel-companion-pod-lifecycle/thread.md similarity index 82% rename from .yoi/tickets/open/20260607-001651-workspace-panel-companion-pod-lifecycle/thread.md rename to .yoi/tickets/closed/20260607-001651-workspace-panel-companion-pod-lifecycle/thread.md index b30edea6..5025dd81 100644 --- a/.yoi/tickets/open/20260607-001651-workspace-panel-companion-pod-lifecycle/thread.md +++ b/.yoi/tickets/closed/20260607-001651-workspace-panel-companion-pod-lifecycle/thread.md @@ -195,4 +195,52 @@ Reviewer validation: Worktree status was clean after validation, and the diff is limited to `crates/tui/src/multi_pod.rs` and `crates/tui/src/workspace_panel.rs`. +--- + + + +## State changed + +Ticket closed; workflow_state set to done. + + +--- + + + +## Closed + +Implemented, reviewed, merged, and validated. + +Summary: +- Added a real workspace Companion Pod lifecycle for `yoi panel`. +- Companion Pod id/name is resolved from the workspace directory basename; for this repository it is exactly `yoi`. +- No `-companion` suffix or separate companion-specific id was introduced for the normal workspace Companion. +- The panel reuses live Companion Pods and restores restorable Companion Pods before spawning a missing Companion. +- The workspace Orchestrator remains a separate identity such as `yoi-orchestrator`. +- Panel close does not stop the Companion. +- The `Companion` composer target now sends user text to the workspace Companion Pod through `Method::Run`, not to arbitrary selected Pods. +- Empty composer behavior still preserves selected-Pod open/attach behavior. +- Busy/unavailable Companion states preserve the draft and surface bounded diagnostics. +- Ticket Intake remains separate and does not append Intake text to Companion history. +- Companion is not modeled as a Ticket role and does not use `.yoi/ticket.config.toml` role slots. +- No selected-Pod direct send, `--multi`, or `:ticket` surface was reintroduced. + +Implementation: +- Child commit: `ba0c9d5 feat: wire panel companion lifecycle` +- Merge commit: `merge: companion pod lifecycle` + +Review: +- External reviewer `companion-lifecycle-reviewer-20260607` approved with no blockers. + +Validation after merge: +- `cargo test -p tui companion --lib` +- `cargo test -p tui multi_pod --lib` +- `cargo test -p tui workspace_panel --lib` +- `cargo test -p tui --lib` +- `cargo fmt --check` +- `git diff --check` +- `target/debug/yoi ticket doctor` + + ---