From 7e35721a81375997333d43df1951a1b1fb8f049a Mon Sep 17 00:00:00 2001 From: Hare Date: Sat, 20 Jun 2026 17:42:40 +0900 Subject: [PATCH] ticket: accept dashboard console tui refactor --- .../artifacts/orchestration-plan.jsonl | 1 + .yoi/tickets/00001KVHX0WBE/item.md | 4 +- .yoi/tickets/00001KVHX0WBE/thread.md | 67 +++++++++++++++++++ 3 files changed, 70 insertions(+), 2 deletions(-) diff --git a/.yoi/tickets/00001KVHX0WBE/artifacts/orchestration-plan.jsonl b/.yoi/tickets/00001KVHX0WBE/artifacts/orchestration-plan.jsonl index fd787b06..1e372fb5 100644 --- a/.yoi/tickets/00001KVHX0WBE/artifacts/orchestration-plan.jsonl +++ b/.yoi/tickets/00001KVHX0WBE/artifacts/orchestration-plan.jsonl @@ -1 +1,2 @@ {"id":"orch-plan-20260620-083118-1","ticket_id":"00001KVHX0WBE","kind":"waiting_capacity_note","note":"Panel Queue was accepted for routing review, but implementation is held because `00001KVHR3WS6` is currently inprogress with active Coder/Reviewer work. Leave this Dashboard/Console refactor Ticket queued; reroute when current implementation capacity is free.","author":"yoi-orchestrator","at":"2026-06-20T08:31:18Z"} +{"id":"orch-plan-20260620-084158-2","ticket_id":"00001KVHX0WBE","kind":"accepted_plan","accepted_plan":{"summary":"`yoi panel` を Dashboard、単一Pod chat/client surfaceを Console、TUIをterminal UI implementation layerとして整理し、TUI module境界を Dashboard/Console 責務へ寄せる。主眼は naming/module-boundary/maintainability refactorであり、user-visible behavior変更や新alias追加は行わない。","branch":"impl/00001KVHX0WBE-dashboard-console-tui-boundary","worktree":"/home/hare/Projects/yoi/.worktree/00001KVHX0WBE-dashboard-console-tui-boundary","role_plan":"ユーザーが blocker のない作業の並列実行を明示許可したため、Orchestrator は MCP tool registration と並行して専用 implementation worktree `.worktree/00001KVHX0WBE-dashboard-console-tui-boundary` を作成し、Coder をその child worktree への narrow write scope で起動する。Coder 実装後、Reviewer が Dashboard/Console/TUI 呼称、`yoi panel` command維持、不要alias不追加、Console/Dashboard entrypoint分離、multi_pod巨大責務分割、既存挙動/テスト維持を確認する。"},"author":"yoi-orchestrator","at":"2026-06-20T08:41:58Z"} diff --git a/.yoi/tickets/00001KVHX0WBE/item.md b/.yoi/tickets/00001KVHX0WBE/item.md index b1272aa5..6f4c5d2a 100644 --- a/.yoi/tickets/00001KVHX0WBE/item.md +++ b/.yoi/tickets/00001KVHX0WBE/item.md @@ -1,8 +1,8 @@ --- title: 'Dashboard / Console 呼称導入と TUI モジュール境界整理' -state: 'queued' +state: 'inprogress' created_at: '2026-06-20T06:55:49Z' -updated_at: '2026-06-20T08:31:27Z' +updated_at: '2026-06-20T08:42:30Z' assignee: null readiness: 'implementation_ready' risk_flags: ['ux-naming', 'module-boundary', 'public-cli', 'test-coverage'] diff --git a/.yoi/tickets/00001KVHX0WBE/thread.md b/.yoi/tickets/00001KVHX0WBE/thread.md index ebadf0f9..68584012 100644 --- a/.yoi/tickets/00001KVHX0WBE/thread.md +++ b/.yoi/tickets/00001KVHX0WBE/thread.md @@ -50,3 +50,70 @@ Next: - 現在の `00001KVHR3WS6` 作業が完了して implementation capacity が空いた後、改めて reroute する。 --- + + + +## Decision + +Routing decision: implementation_ready_parallel + +Reason: +- User directive: 「blocker無いなら並列にやっちゃえよ」。この指示により、未解決 blocker がない実装 Ticket は現在の MCP review loop と並行して開始する方針に更新した。 +- Ticket body は Dashboard / Console / TUI の呼称導入、`yoi panel` command維持、不要 alias 不追加、Dashboard / Console entrypoint 境界、`multi_pod.rs` の Dashboard module への移設・分割、docs/help/tests更新、validation を実装可能な粒度で定義している。 +- `TicketRelationQuery(00001KVHX0WBE)`: 未解決 blocker relation なし。 +- 現在 `00001KVHR3WS6` は inprogress だが domain は MCP tool registration であり、この Dashboard/Console TUI refactor と直接 conflict しない。別 worktree / branch / sibling Coder Pod で並列化できる。 +- Orchestrator worktree は clean、matching branch/worktree はなし。 +- Risk flags は ux-naming / module-boundary / public-cli / test-coverage だが stop gate ではなく reviewer focus。Ticket は `yoi panel` command維持、`yoi dashboard` 等の不要 alias 不追加、Dashboard は scheduler/backend ではない、挙動変更は目的にしない、tests維持を明示している。bounded context check 後も implementation 前に必要な追加 human decision は見つからなかった。 + +Evidence checked: +- Ticket `00001KVHX0WBE` body / thread / artifacts。 +- Current workspace state: + - Orchestrator worktree clean at `8ce4fcde`。 + - inprogress: `00001KVHR3WS6` only。 + - queued includes this Ticket and downstream MCP Tickets。 + - visible spawned children are MCP tool-registration coder/reviewer; no Dashboard/Console branch/worktree exists。 + +IntentPacket: + +Intent: +- Introduce user-facing terminology: Dashboard = `yoi panel`, Console = single-Pod chat/client surface, TUI = terminal UI implementation umbrella。 +- Refactor TUI module boundaries so Dashboard is not routed through Console/single-Pod module entrypoints, and `multi_pod.rs` responsibilities move toward a Dashboard module boundary。 +- Preserve behavior. The objective is naming / module boundary / maintainability refactor, not functional change。 + +Binding decisions / invariants: +- Keep `yoi panel` command name。 +- Do not add `yoi dashboard` or other unnecessary compatibility aliases。 +- Dashboard is workspace-level cockpit/action surface, not scheduler/backend。 +- Console is single-Pod chat/client surface and is not a subordinate Dashboard mode。 +- TUI is implementation layer umbrella, not a replacement mode name。 +- Dashboard may open a Pod Console, but bridge should be narrow and readable。 +- Avoid behavior changes to Ticket authority, Pod lifecycle, Orchestrator handoff, Panel action model, input model, or rendering semantics unless explicitly required and reported。 +- Keep/port existing tests; exact string tests should be updated to Dashboard/Console terminology where appropriate。 + +Requirements / acceptance criteria: +- `yoi panel` help/docs describe Dashboard。 +- Single Pod UI help/docs describe Console。 +- Dashboard entrypoint lives in Dashboard module side; `LaunchMode::Panel` does not flow through a Console module entrypoint like `single_pod::run_panel`。 +- Console module focuses on single-Pod chat/connect/spawn/resume。 +- `multi_pod.rs` giant file state is materially improved by moving/splitting responsibilities into Dashboard module boundaries。 +- Render/list/layout, action/lifecycle, diagnostics/e2e, tests boundaries are reviewer-readable。 +- Existing workspace panel/action model remains intact; `yoi panel` remains Ticket-centric workspace cockpit and not scheduler/backend。 +- Validation includes `cargo test -p tui`, `cargo test -p yoi`, `cargo check --workspace --all-targets`, `cargo fmt --check`, `git diff --check`, and targeted grep/help checks as needed。 + +Escalate if: +- Dashboard/Console split is insufficient for a third user-facing surface。 +- `yoi panel` command rename or `yoi dashboard` alias seems necessary。 +- Module split requires behavior changes to Ticket state authority, Pod lifecycle, Orchestrator handoff, or user-visible behavior beyond naming/boundary。 + +Next action: +- Record `queued -> inprogress` and commit Ticket records before creating implementation worktree and spawning Coder。 + +--- + + + +## State changed + +User explicitly authorized parallel implementation when no blocker exists. Ticket body/thread, relation metadata, prior waiting-capacity note, Orchestrator worktree state, visible Pods, existing branch/worktree, and bounded Dashboard/Console TUI context were checked. There is no unresolved blocking dependency, no matching worktree/branch, and no missing planning decision. Accepting this queued Ticket for parallel implementation before worktree/Pod side effects. + +---