merge: panel ticket two-line rows
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
title: 'Panel Ticket rows を2行表示にして gate 情報を分離する'
|
||||
state: 'inprogress'
|
||||
created_at: '2026-06-13T18:10:57Z'
|
||||
updated_at: '2026-06-14T06:10:45Z'
|
||||
updated_at: '2026-06-14T06:37:08Z'
|
||||
assignee: null
|
||||
readiness: 'implementation_ready'
|
||||
risk_flags: ['tui', 'workspace-panel', 'ticket-relations', 'mouse-input', 'layout']
|
||||
|
||||
@@ -45,4 +45,65 @@ Validation:
|
||||
|
||||
Ticket evidence, related records, orchestration plan, and clean workspace state were checked. No blockers remain; accept for implementation before worktree/spawn side effects.
|
||||
|
||||
---
|
||||
|
||||
<!-- event: implementation_report author: hare at: 2026-06-14T06:26:55Z -->
|
||||
|
||||
## Implementation report
|
||||
|
||||
Implemented Workspace Panel Ticket row rendering as two visual lines.
|
||||
|
||||
Changes:
|
||||
- Ticket action rows now render a state/title line and a separate detail line containing Ticket id, gate, action, and reason.
|
||||
- Selection stays logical per Ticket row: selected Ticket visual lines use the same `|` marker, and contiguous hit boxes for the same Ticket are grouped so mouse clicks on either line select the same Ticket without dispatching actions.
|
||||
- Relation blockers are shown as gate/wait information with queue disabled wording and `Wait` action rather than as blocked/error/human-reply styling; no persisted `waiting` lifecycle state was added.
|
||||
- Updated focused row layout, waiting-gate, and mouse hit-testing tests.
|
||||
|
||||
Validation:
|
||||
- PASS: `cargo test -p tui panel_ticket --lib`
|
||||
- PASS: `cargo test -p tui row_hit_testing --lib`
|
||||
- PASS: `cargo test -p tui mouse_click --lib`
|
||||
- PASS: `cargo test -p tui ready_ticket_with_waiting_gate --lib`
|
||||
- PASS: `cargo test -p tui workspace_panel_marks_ready_ticket_with_unresolved_relation_waiting_gate --lib`
|
||||
- PASS: `cargo test -p yoi-e2e --features e2e --test panel -- --nocapture`
|
||||
- PASS: `cargo build -p yoi`
|
||||
- PASS: `cargo fmt --check`
|
||||
- PASS: `git diff --check`
|
||||
- NOTE: `cargo test -p tui --lib` was also attempted and failed in pre-existing/unrelated tests: `multi_pod::tests::orchestrator_launch_context_uses_orchestration_root_for_runtime_workspace`, `spawn::tests::profile_choices_include_builtin_and_project_default_marker`, and `spawn::tests::profile_choices_use_project_registry_default`. The failures assert unrelated orchestration/profile defaults and are outside this Ticket's row/layout/mouse changes.
|
||||
- NOT RUN: `nix build .#yoi` (skipped as nonessential here; it may create root-level build output symlinks and is heavier than the scoped TUI/panel validation).
|
||||
|
||||
Risks:
|
||||
- Ticket rows now consume two terminal lines, so very short panel areas may display fewer logical Ticket rows before clipping.
|
||||
|
||||
|
||||
---
|
||||
|
||||
<!-- event: review author: hare at: 2026-06-14T06:37:08Z status: approve -->
|
||||
|
||||
## Review: approve
|
||||
|
||||
Approve.
|
||||
|
||||
Evidence:
|
||||
- Reviewed `git diff f709fc10..HEAD` for implementation commit `645d048d`.
|
||||
- Ticket action rows now expand each Ticket into two selectable visual rows: the first renders canonical state plus title, the second renders Ticket id, derived gate, action, and reason. The selected marker is the `| ` grouping marker on both visual lines, and the title line no longer embeds the Ticket id.
|
||||
- Hit testing merges adjacent visual rows with the same `PanelRowKey`, so both Ticket visual lines select the same logical row/hitbox; mouse selection does not dispatch by itself, with dispatch still requiring the existing blank-Enter path.
|
||||
- Relation blockers are derived from relation data into `Wait`/queue-disabled gate text and preserve the canonical workflow state rather than introducing a persisted `waiting` lifecycle state or the old blocked/edit/human-reply row class.
|
||||
- Short-area/list-row slicing remains bounded by available height and hitboxes ignore out-of-area rows, so very small panel areas degrade without panics.
|
||||
|
||||
Validation:
|
||||
- `cargo test -p tui panel_ticket --lib` — passed (3 tests).
|
||||
- `cargo test -p tui row_hit_testing --lib` — passed (1 test).
|
||||
- `cargo test -p tui mouse_click --lib` — passed (2 tests).
|
||||
- `cargo test -p tui ready_ticket_with_waiting_gate --lib` — passed (1 test).
|
||||
- `cargo test -p tui workspace_panel_marks_ready_ticket_with_unresolved_relation_waiting_gate --lib` — passed (1 test).
|
||||
- `cargo test -p yoi-e2e --features e2e --test panel -- --nocapture` — passed (3 tests).
|
||||
- `cargo build -p yoi` — passed.
|
||||
- `cargo fmt --check` — passed.
|
||||
- `git diff --check f709fc10..HEAD` — passed.
|
||||
|
||||
Risks / unresolved:
|
||||
- None found within the requested review focus.
|
||||
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user