ticket: route parallel ticketlist and panel work

This commit is contained in:
Keisuke Hirata 2026-06-09 19:19:43 +09:00
parent 949d6ee705
commit d95b3ffff6
No known key found for this signature in database
6 changed files with 122 additions and 5 deletions

View File

@ -1,8 +1,8 @@
--- ---
title: 'Improve workspace panel display and composer key handling' title: 'Improve workspace panel display and composer key handling'
state: 'queued' state: 'inprogress'
created_at: '2026-06-09T08:47:25Z' created_at: '2026-06-09T08:47:25Z'
updated_at: '2026-06-09T10:03:41Z' updated_at: '2026-06-09T10:19:34Z'
assignee: null assignee: null
readiness: 'implementation_ready' readiness: 'implementation_ready'
risk_flags: ['tui-input', 'ux-consistency'] risk_flags: ['tui-input', 'ux-consistency']

View File

@ -180,3 +180,52 @@ Next action:
- Re-read this Ticket after the ToolExecutionContext API migration lands, or earlier if explicitly prioritized. - Re-read this Ticket after the ToolExecutionContext API migration lands, or earlier if explicitly prioritized.
--- ---
<!-- event: state_changed author: orchestrator at: 2026-06-09T10:19:34Z from: queued to: inprogress reason: orchestrator_acceptance_parallel_capacity field: state -->
## State changed
Accepted queued implementation under the updated parallel-capacity policy. This Ticket is TUI panel/composer UX work and is independent from the active ToolExecutionContext migration except for normal workspace validation. It can run in a separate worktree with separate write scope.
---
<!-- event: decision author: orchestrator at: 2026-06-09T10:19:34Z -->
## Decision
Routing decision: implementation_ready_parallel
Updated user instruction: prefer parallel work when Tickets are independent or expected conflicts are small/manageable.
Reason:
- This Ticket is focused on TUI panel display/composer key handling.
- It is independent from the active ToolExecutionContext API migration and the TicketList output work, aside from normal shared validation.
- It can run in a separate worktree with a separate Coder scope.
IntentPacket:
Intent:
- Improve Panel display and composer key handling so global composer text entry, selected-row actions, target switching, and focus states are explicit and less ambiguous.
Binding decisions / invariants:
- Remove `Ctrl+T` from Panel top line/actionbar/help and stop using it for Panel target switching.
- Use `Tab` for Panel target switching, but completion state has priority when active.
- Preserve no bare-letter shortcuts; normal typed letters go to composer text.
- Share or abstract composer editing/key handling rather than adding ad-hoc Panel-only editing behavior.
- Support normal composer editing operations including cursor movement, line start/end, deletion, history, and `Ctrl+Left` / `Ctrl+Right` where terminal events make that possible.
- Make focus/model explicit: selected row, item action focus, or global composer target.
- Global composer text must not imply it applies to a selected Ticket unless such a feature is explicitly added.
- `Esc` backs out of action/list focus toward global composer/no-selection; `Ctrl+C` is the reliable quit key.
Reviewer focus:
- Verify the UI answers “what will Enter do now?” in selected-row/action/global-composer states.
- Verify target switching/completion `Tab` priority.
- Verify composer key handling is shared/compatible with normal TUI where practical.
- Verify no bare-letter shortcuts are reintroduced.
Validation:
- Focused TUI/panel key handling/display tests where feasible.
- Manual or test evidence for top/actionbar `Ctrl+T` removal and `Tab` target switch.
- `cargo fmt --check`, `git diff --check`, `cargo run -q -p yoi -- ticket doctor`, `cargo check --workspace`, `nix build .#yoi`.
---

View File

@ -1,8 +1,8 @@
--- ---
title: 'TicketListの出力を軽量化する' title: 'TicketListの出力を軽量化する'
state: 'queued' state: 'inprogress'
created_at: '2026-06-09T08:52:12Z' created_at: '2026-06-09T08:52:12Z'
updated_at: '2026-06-09T10:03:41Z' updated_at: '2026-06-09T10:19:34Z'
assignee: null assignee: null
queued_by: 'workspace-panel' queued_by: 'workspace-panel'
queued_at: '2026-06-09T10:01:28Z' queued_at: '2026-06-09T10:01:28Z'

View File

@ -101,3 +101,51 @@ Next action:
- Re-read this Ticket and accept from queued if still unblocked. - Re-read this Ticket and accept from queued if still unblocked.
--- ---
<!-- event: state_changed author: orchestrator at: 2026-06-09T10:19:34Z from: queued to: inprogress reason: orchestrator_acceptance_parallel_capacity field: state -->
## State changed
Accepted queued implementation under the updated parallel-capacity policy. The active ToolExecutionContext branch changes core Tool execution plumbing, while this Ticket changes the bounded TicketList output surface. There may be a small mechanical conflict around the TicketList tool implementation, but it is expected to be localized and manageable, so parallel work is preferred.
---
<!-- event: decision author: orchestrator at: 2026-06-09T10:19:34Z -->
## Decision
Routing decision: implementation_ready_parallel
Updated user instruction: prefer parallel work when Tickets are independent or expected conflicts are small/manageable.
Reason:
- This Ticket changes `TicketList` output/tool/CLI/workflow guidance.
- `20260609-093050-001` changes the core Tool execution context API. The overlap is expected to be a localized mechanical merge in tool execution signatures / TicketList implementation, not a design conflict.
- Running this in parallel should improve throughput while preserving separate worktrees and explicit review.
IntentPacket:
Intent:
- Make `TicketList` a lightweight bounded overview/selection surface and keep detailed authority in `TicketShow`.
Binding decisions / invariants:
- Default `TicketList` output must not include body/thread/artifact details.
- Per-Ticket summary must be short and bounded: canonical id, title, state, minimal timestamp, and short attention/blocking hints if any.
- Long titles/diagnostics must be truncated.
- Default/max limits should be smaller and context-safe, especially for `state=all` / closed-inclusive listing.
- Tool output is the priority for context safety; CLI should remain human-readable without huge default JSON/Markdown.
- `TicketList` is not routing/close/implementation authority; Orchestrator must read `TicketShow` for decisions.
- Do not change Ticket backend schema, TicketShow detail, Ticket relation/Objectives/OrchestrationPlan design.
Reviewer focus:
- Verify no body/thread/artifact prose leaks into list output.
- Verify output remains useful for selection and backlog overview.
- Verify default limits and truncation are bounded and tested.
- Watch for small merge interactions with the ToolExecutionContext branch; resolve by using the new context API without expanding scope.
Validation:
- Focused tests for long-title truncation, large-list limits, all/closed cap, JSON/tool output shape, no body/thread leakage.
- CLI list output tests.
- `cargo fmt --check`, `git diff --check`, `cargo run -q -p yoi -- ticket doctor`, `cargo check --workspace`, `nix build .#yoi`.
---

View File

@ -2,7 +2,7 @@
title: 'action_requiredとattention_requiredをTicket schemaから削除する' title: 'action_requiredとattention_requiredをTicket schemaから削除する'
state: 'queued' state: 'queued'
created_at: '2026-06-09T09:55:18Z' created_at: '2026-06-09T09:55:18Z'
updated_at: '2026-06-09T10:12:07Z' updated_at: '2026-06-09T10:19:34Z'
assignee: null assignee: null
queued_by: 'workspace-panel' queued_by: 'workspace-panel'
queued_at: '2026-06-09T10:11:38Z' queued_at: '2026-06-09T10:11:38Z'

View File

@ -53,3 +53,23 @@ Next action:
- Re-read this Ticket after that lands, then accept from queued if still unblocked. - Re-read this Ticket after that lands, then accept from queued if still unblocked.
--- ---
<!-- event: decision author: orchestrator at: 2026-06-09T10:19:34Z -->
## Decision
Routing decision update: still_waiting_due_surface_overlap
The user asked to prefer parallel work when conflicts are absent or expected to be small. I re-evaluated this Ticket under that policy and am still leaving it queued.
Reason:
- This Ticket removes `action_required` / `attention_required` from Ticket schema/tool API/Panel behavior.
- `20260609-085212-001` now runs in parallel and also changes TicketList/tool output.
- `20260609-084725-001` now runs in parallel and changes Panel behavior/key/display.
- Running this cleanup at the same time would overlap both active Ticket tool output and Panel behavior surfaces; this is more than a small mechanical conflict.
State decision:
- Leave this Ticket `queued`.
- Re-read and route it after either TicketList output slimming or Panel display work lands, depending on which surface remains active.
---