3.5 KiB
Created
Created by LocalTicketBackend create.
Plan
Preflight result: implementation-ready after action model and Orchestrator lifecycle.
This ticket should add the first composer target split for yoi panel: preserve the Companion/selected-Pod send path, and add a Ticket Intake target that launches an Intake role Pod with the composer body as the initial user instruction. The Intake body must not be appended to Companion/current Pod history or sent to the selected Pod.
Ticket Intake target is available only when Ticket config is defined/usable. No-Ticket workspaces remain Pod-centric and expose only the existing send behavior.
Detailed delegation intent is recorded in artifacts/delegation-intent.md.
Review: approve
External reviewer approved commit a7c155e with no blocking issues.
Review summary:
- Composer targets include
CompanionandTicket Intake. - No-Ticket/unusable-Ticket-config workspaces remain Companion-only.
- Active target is visible and
Ctrl+Tswitching preserves typed input. - Ticket Intake uses
TicketRole::Intakevialaunch_ticket_role_podwith composer text asTicketRoleLaunchContext.user_instruction. - Intake text does not route through the selected-Pod direct send path.
- Empty Intake input is rejected locally with a bounded diagnostic.
- Success clears composer and reports launched Pod name; failure keeps composer and reports a bounded diagnostic.
- No Intake -> Orchestrator handoff payload was added.
--multiwas not reintroduced.
Closed
Implemented first workspace panel composer targets.
Changes:
- Added workspace panel composer target model with:
Companion/ existing selected-Pod send behavior;Ticket Intake.
- Added
Ctrl+Ttarget switching without clearing typed composer text. - Displayed active target in the panel target/status line and actionbar guidance using existing TUI conventions.
- No-Ticket and unusable-Ticket-config workspaces expose only
Companion/ Pod-centric behavior. Ticket Intakeis available only when Ticket config is usable.- Empty Intake input is rejected with a bounded diagnostic.
- Intake launch uses the existing
TicketRole::Intake/launch_ticket_role_pod(...)path. - Composer text is passed as
TicketRoleLaunchContext.user_instructionfor the Intake launch. - Intake text is not sent to Companion/current Pod history or selected-Pod direct send path.
- Successful Intake launch clears composer and reports the launched Pod name.
- Launch failure keeps composer text and reports a bounded diagnostic.
- Intake -> Orchestrator handoff payload was intentionally not added; the follow-up handoff ticket owns that.
--multiwas not reintroduced.
Validation after merge:
cargo test -p tui workspace_panelcargo test -p tui multi_podcargo test -p client ticket_rolecargo test -p yoi panelcargo check --workspace --all-targetscargo fmt --checkgit diff --check HEAD~1..HEADcargo build -p yoitarget/debug/yoi ticket doctornix build .#yoi --no-link --print-out-paths
External review approved with no requested changes.
Known follow-up:
- Active target display is intentionally minimal; final placement/color/wording tuning is deferred.
- Intake -> Orchestrator handoff remains the next child ticket.