5.7 KiB
Created
Created by LocalTicketBackend create.
Plan
Preflight / implementation intent
Classification: implementation-ready.
Intent:
- Remove the workspace panel path that treats
Companioncomposer input as a directMethod::Runsend to the selected Pod. - Keep Pod open/attach, Ticket Intake launch, Orchestrator lifecycle, Queue/Ticket actions, and Pod discovery intact.
- Until the real Companion Pod lifecycle exists, Companion composer submit should produce a bounded diagnostic instead of falling back to selected-Pod direct send.
Requirements:
Enteron non-empty Companion composer input must not send toselected_pod.socket_path.- UI/status/key hints must stop advertising selected-Pod direct send.
- Pod rows should advertise/open attach behavior, not direct-send behavior.
- Ticket Intake target must still build and launch Intake requests.
- Existing no-Ticket panel remains useful for discovering and opening Pods.
Invariants / boundaries:
- Do not implement real Companion Pod lifecycle here; that belongs to
workspace-panel-companion-pod-lifecycle. - Do not change Companion tool/profile policy here; that belongs to
companion-status-context-tool-policy. - Do not remove Pod attach/open.
- Do not reintroduce single-Pod
:ticketor old--multisemantics. - Do not change Ticket workflow-state semantics.
Current code map:
crates/tui/src/multi_pod.rs:MultiPodApp::prepare_send,send_run_and_confirm, Enter handling, status/help text, and tests currently embody selected-Pod direct send.crates/tui/src/workspace_panel.rs:NextUserAction::SendToPod,pod_row, and key hints currently advertise direct-send behavior for Pod rows.crates/tui/src/multi_pod.rs:prepare_intake_launch/launch_intake_with_handoffmust remain intact for Ticket Intake.
Critical risks:
- Accidentally removing/weakening open/attach while deleting send behavior.
- Leaving stale status-bar/help text that still claims Enter sends to selected Pods.
- Conflating this cleanup with real Companion lifecycle and creating a fake/partial Companion implementation.
- Breaking Ticket Intake Enter behavior while removing Companion direct send.
Validation:
- Update focused
tuiunit tests that currently assert direct-send eligibility and non-empty Enter direct-send behavior. - Run focused tests around
multi_podandworkspace_panel, plus formatting/checks as appropriate for the diff.
Intake summary
Implementation intent is clear: remove selected-Pod direct send from the workspace panel, keep Pod open/attach and Ticket Intake, and show a bounded diagnostic for Companion composer submit until the real Companion Pod lifecycle is implemented.
State changed
Ticket intake complete; workflow_state intake -> ready.
Implementation report
Delegation
Implementation delegated to child Pod remove-direct-pod-send-coder-20260607 in worktree .worktree/workspace-panel-remove-direct-pod-send on branch work/workspace-panel-remove-direct-pod-send.
Scope:
- Remove selected-Pod direct send from
yoi panelCompanion composer behavior. - Keep Pod open/attach and Ticket Intake launch working.
- Show a bounded diagnostic for Companion composer submit until real Companion lifecycle exists.
- Update focused
multi_pod/workspace_paneltests and run focused validation.
The child should commit implementation work in the child worktree and report diff/tests. Merge, review, Ticket closure, and cleanup remain with the parent/human workflow.
Review: approve
Approved after reviewing the child implementation and post-merge validation.
Review notes:
- The workspace panel no longer sends non-empty Companion composer input to the selected Pod via direct
Method::Run. - Non-empty Companion submit now keeps the draft and reports that the real Companion lifecycle is not connected yet.
- Empty Enter and
ostill open/attach the selected Pod. - Ticket Intake Enter still builds the Intake launch request and is not treated as direct selected-Pod send.
- Pod rows now advertise open behavior rather than send behavior.
Validation run after merge:
cargo test -p tui multi_pod --libcargo test -p tui workspace_panel --libcargo fmt --checkgit diff --check
State changed
Ticket closed; workflow_state set to done.
Closed
Implemented and merged.
Summary:
- Removed the workspace panel path that treated the
Companioncomposer target as direct selected-PodMethod::Runsending. - Non-empty Companion submit now preserves the draft and reports that the real Companion lifecycle is not connected yet.
- Preserved Pod open/attach behavior through empty Enter /
o. - Preserved Ticket Intake composer launch behavior.
- Updated Pod row action/key-hint behavior away from direct-send semantics.
- Updated focused tests for the new behavior.
Merged implementation:
- Child commit:
393cde9 tui: remove panel direct pod send - Main merge commit:
merge: remove panel direct pod send
Validation after merge:
cargo test -p tui multi_pod --libcargo test -p tui workspace_panel --libcargo fmt --checkgit diff --check