4.6 KiB
Delegation intent: workspace panel layout/display tuning
Classification
implementation-ready as a focused UX/layout pass after the first-pass panel implementation.
The main requested change is row readability: Ticket titles and Pod names/ids are variable-length and currently lead the row, which makes status/action scanning hard. Rework rendering into aligned columns with short fields first and long free-text identifiers last.
Intent
Tune yoi panel row rendering and immediate display affordances without changing Ticket backend/action semantics.
Primary direction:
- Ticket/action rows: short aligned columns first, long Ticket title last.
- Pod rows: short aligned columns first, variable-length Pod id/name last.
- Ticket row and Pod row schemas do not need to be identical, but each row family should align its own columns consistently.
Worktree / branch
- worktree:
/home/hare/Projects/yoi/.worktree/workspace-panel-layout-display-tuning - branch:
work/workspace-panel-layout-display-tuning
This ticket may read tracked .yoi/tickets records/design artifacts. Do not read or edit .yoi/memory/.
Requirements
- Rework row rendering into stable aligned columns rather than sentence-like rows.
- Ticket/action row layout should move the long Ticket title to the end.
- Put short, comparable fields first.
- Suggested fields/order: selection marker, priority bucket, action, derived status, phase, short id/slug, title.
- Exact widths can be tuned, but status/action/phase should line up across Ticket rows.
- Pod row layout should move variable-length Pod name/id to the end.
- Put short, comparable fields first.
- Suggested fields/order: selection marker, status, action, role/kind if cheaply available, Pod name/id.
- Long Pod names must not break status/action alignment.
- Preserve existing color/style semantics unless a small adjustment improves readability.
- Improve labels only where it directly helps the aligned layout; avoid broad copy rewrites.
- Preserve
yoi panelbehavior in both Ticket-enabled and no-Ticket workspaces. - Preserve Ticket action dispatch, Intake launch, Orchestrator lifecycle, Pod open/direct-send, and composer target behavior.
- Do not move authority into rendering code; keep the thin ViewModel boundary.
- Do not reintroduce
--multi. - Avoid broad refactors or new scheduler/action semantics.
Current code map
crates/tui/src/multi_pod.rspanel_row_line(...)currently renders Ticket/action rows as<title> [priority] Action: status ....row_line(...)currently renders Pod rows as<pod name> [status] action ....panel_priority_style(...),row_status_label(...), section/header rendering, and tests are nearby.
crates/tui/src/workspace_panel.rsPanelRow,TicketPanelEntry,ActionPriority,NextUserAction,TicketPanelPhase, andticket_subtitle(...)provide the display fields.- Extend display-ready fields only if needed; keep this as UI data, not authority.
- Existing tests in
crates/tui/src/multi_pod.rsandworkspace_panel.rs- Add/adjust unit tests for row rendering/alignment and truncation behavior.
Suggested display shape
Ticket/action row example:
▶ decision Review implementation reported review workspace-panel-composer-targets Workspace panel composer targets
ready Go ready for Go preflight ticket-slug Long Ticket title...
Pod row example:
live idle send pod companion
live running open pod very-long-background-worker-name...
Exact wording and widths can differ, but the visual rule is fixed: short comparable columns first, long names/titles last.
Non-goals
- Backend/Ticket action semantic changes.
- New scheduler/queue behavior.
- Orchestrator/Intake protocol changes.
- Replacing the single-Pod TUI.
- Reintroducing
--multi. - Large module refactors.
Validation
Run at least:
- targeted TUI tests for Ticket row rendering/alignment;
- targeted TUI tests for Pod row rendering/alignment;
cargo test -p tui workspace_panel;cargo test -p tui multi_pod;cargo test -p yoi panel;cargo check --workspace --all-targets;cargo fmt --check;git diff --check;cargo build -p yoi;target/debug/yoi ticket doctor.
Run nix build .#yoi --no-link if feasible.
Completion report
Report:
- worktree path / branch;
- commit hash;
- final Ticket row column schema and widths/truncation behavior;
- final Pod row column schema and widths/truncation behavior;
- tests updated/added;
- validation results;
- remaining UX/display tuning items, if any.