---
id: 20260605-210703-workspace-orchestration-panel
slug: workspace-orchestration-panel
title: Workspace orchestration panel
status: closed
kind: task
priority: P1
labels: [tui, ticket, orchestration, panel]
created_at: 2026-06-05T21:07:03Z
updated_at: 2026-06-06T06:05:38Z
assignee: null
legacy_ticket: null
---

## Background

The current TUI Ticket role commands are a command-driven MVP. They prove that TUI can launch fixed Ticket-role Pods through the client launcher, but they do not provide the desired workspace orchestration experience.

The desired panel is a workspace-scoped orchestration UI, closer to an improved `--multi` surface, but organized around Ticket/Intake/Orchestrator action state rather than raw Pod idle/working state.

## Goal

Build a workspace orchestration panel where the user can:

- chat with a Companion management interface;
- send new requests directly to Ticket Intake without putting them into the Companion/current Pod session;
- have a workspace Orchestrator restored/spawned in the background when the panel opens;
- see user-action-required Intake/Ticket states before generic Pod status;
- give a simple Go signal once an Intake-prepared Ticket is fixed and understood by the human.

## Target model

- Panel is workspace-scoped.
- Companion is the foreground management chat target.
- Orchestrator is a background coordinator Pod named from the workspace directory, e.g. `<dir-name>-orchestrator`.
- Intake is spawned per user request from the composer target.
- Intake receives Orchestrator handoff/notification target at launch.
- Panel close does not stop Orchestrator.
- The primary list is an action model, not a Pod status list.

## Child tickets

1. `workspace-orchestration-panel-design`
   - Produce the detailed architecture/design artifact for the panel.

2. `workspace-panel-orchestrator-lifecycle`
   - Restore/spawn workspace Orchestrator when the panel opens; leave it running on panel close.

3. `workspace-panel-composer-targets`
   - Add composer targets for Companion vs Ticket Intake; Intake sends the composer body directly to a new Intake Pod.

4. `ticket-intake-orchestrator-handoff`
   - Define and implement Intake -> Orchestrator handoff/notification contract.

5. `workspace-panel-action-model`
   - Display user-action-required Intake/Ticket states ahead of raw Pod status and support Go/Defer/Edit-style decisions.

## Non-goals

- Generic scheduler/lease/queue automation.
- Arbitrary role registry.
- Replacing the single-Pod TUI.
- Stopping background Orchestrator on panel close.
- Bypassing Ticket Intake / Routing / Preflight / Review gates.

## Acceptance criteria

- Child tickets are created and sequenced.
- The design ticket fixes the panel responsibility boundary before implementation tickets proceed.
- Implementation child tickets use existing Ticket tools/config/launcher where possible.
- The command-driven `:ticket ...` path remains available as a low-level fallback, but the panel design does not depend on users typing commands for the main flow.
