diff --git a/.yoi/tickets/00001KVDETSN6/artifacts/orchestration-plan.jsonl b/.yoi/tickets/00001KVDETSN6/artifacts/orchestration-plan.jsonl new file mode 100644 index 00000000..4ea4ad7f --- /dev/null +++ b/.yoi/tickets/00001KVDETSN6/artifacts/orchestration-plan.jsonl @@ -0,0 +1 @@ +{"id":"orch-plan-20260618-135757-1","ticket_id":"00001KVDETSN6","kind":"accepted_plan","accepted_plan":{"summary":"Panel startup latency の主 metric を user-visible dashboard content ready に置き直し、live-like fixture / expected dashboard snapshot / slow-source breakdown を追加し、必要な latency 改善を行う。first frame や単一 Ticket row readiness を主 evidence として扱わない。","branch":"impl/00001KVDETSN6-panel-dashboard-content-ready","worktree":"/home/hare/Projects/yoi/.worktree/00001KVDETSN6-panel-dashboard-content-ready","role_plan":"Orchestrator は専用 implementation worktree を作成し、Coder をその worktree への narrow write scope で起動する。既存 Plugin permission grants Coder とは主対象が異なり、Panel/E2E/TUI harness 側の変更として並行可能。Reviewer は実装報告後に read-only で確認する。"},"author":"yoi-orchestrator","at":"2026-06-18T13:57:57Z"} diff --git a/.yoi/tickets/00001KVDETSN6/item.md b/.yoi/tickets/00001KVDETSN6/item.md index 4e07b528..11e33a24 100644 --- a/.yoi/tickets/00001KVDETSN6/item.md +++ b/.yoi/tickets/00001KVDETSN6/item.md @@ -1,8 +1,8 @@ --- title: 'Panel startup latency をユーザー目線の dashboard content ready 基準で計測・改善する' -state: 'queued' +state: 'inprogress' created_at: '2026-06-18T13:30:51Z' -updated_at: '2026-06-18T13:55:08Z' +updated_at: '2026-06-18T13:58:33Z' assignee: null readiness: 'implementation_ready' risk_flags: ['panel', 'e2e', 'startup-latency', 'user-visible-readiness', 'dashboard-content', 'profiling'] diff --git a/.yoi/tickets/00001KVDETSN6/thread.md b/.yoi/tickets/00001KVDETSN6/thread.md index 224117f9..ace9a434 100644 --- a/.yoi/tickets/00001KVDETSN6/thread.md +++ b/.yoi/tickets/00001KVDETSN6/thread.md @@ -13,4 +13,91 @@ LocalTicketBackend によって作成されました。 Ticket を `workspace-panel` が queued にしました。 +--- + + + +## Decision + +Routing decision: implementation_ready + +Reason: +- Panel Queue により、この Ticket は Orchestrator routing 対象として明示許可された。 +- 主目的は Panel startup latency の測定基準を、first frame / 単一 Ticket row readiness ではなく、ユーザー目線の dashboard content ready に揃えること。 +- 要件、非目標、validation、escalation 条件が実装可能な粒度で揃っており、残る不確実性は Panel/E2E/TUI harness 近傍の bounded implementation investigation に閉じる。 +- `depends_on` / incoming `blocks` の未解決 blocker は見当たらない。関連 Ticket は完了済みまたは context link として扱える。 +- 既存 in-progress Ticket `00001KV5W3PJ3` は Plugin permission grants 領域で、今回の主作業面は Panel startup/E2E/TUI harness 側のため、別 worktree での並行実装は conflict risk が低い。 + +Evidence checked: +- Ticket `00001KVDETSN6` body/thread/artifacts via `TicketShow`。 +- `TicketRelationQuery(00001KVDETSN6)` の relation metadata: blocking acceptance blocker はなし。 +- `TicketOrchestrationPlanQuery(00001KVDETSN6)`: 既存 plan record はなし。今回 `accepted_plan` を記録済み。 +- 関連 Ticket `00001KV62PF32`, `00001KV5MRH6D`, `00001KV5D7MG5` の状態: done/closed context として確認。 +- Orchestrator worktree `/home/hare/Projects/yoi/.worktree/orchestration` の git state と既存 worktree/branch: matching implementation branch/worktree はなし。 +- Code map: `panel_ready`, `rows_rendered`, startup latency / fixture readiness 周辺の既存実装・テスト候補を grep で確認。 +- Visible Pods: 既存 Coder `yoi-coder-00001KV5W3PJ3` は別 Ticket 用。今回の worktree / branch / scope を分離できる。 + +IntentPacket: + +Intent: +- Panel startup latency の主な evidence を、ユーザーが dashboard として意味ある内容を見られる状態へ合わせる。 +- live-like fixture と expected dashboard content snapshot を使い、Ticket/Pod/claim など代表 dashboard data が描画・利用可能になるまでを測定できるようにする。 +- 測定結果から遅延源を分解し、必要な範囲で startup/readiness 改善を行う。 + +Binding decisions / invariants: +- `panel_ready` や first frame は主 UX metric にしない。必要なら補助 metric として残す。 +- `rows_rendered`/単一 Ticket row readiness だけで dashboard content ready と見なさない。 +- E2E/fixture はユーザーに見える dashboard content を代表すること。空画面や trivial row だけの readiness は不可。 +- Panel は scheduler/backend ではなく local-file-first view である、という既存設計を変えない。 +- Mouse/input semantics や Panel queue/close/review workflow semantics をこの Ticket で広げない。 +- root/original workspace は操作せず、Orchestrator worktree から作成した child implementation worktree だけで実装する。 + +Requirements / acceptance criteria: +- Dashboard content ready を測る fixture/test harness または equivalent な計測 surface が追加される。 +- Expected dashboard content snapshot / assertion があり、ユーザーに意味のある複数種の dashboard rows/data が ready 条件に含まれる。 +- Startup latency 出力に first frame と dashboard content ready の違い、または slow-source breakdown が分かる evidence がある。 +- 既存 Panel startup regression test / benchmark 相当が新しい基準に合わせて更新される。 +- 改善実装を入れる場合は、semantic shortcut ではなく実際の readiness path の遅延削減であること。 + +Implementation latitude: +- 既存 Panel test/fixture structure を調査し、最小の fixture/harness 拡張で dashboard content ready を表現してよい。 +- Metric 名、structured output field 名、test helper の分割は既存コードに合わせてよい。 +- 遅延改善は、測定で見えた局所的な loading/readiness bottleneck に限定してよい。 + +Escalate if: +- Panel architecture を scheduler/backend 化する必要が出る。 +- Dashboard ready の定義に product/UX 判断が必要な未記録の分岐がある。 +- Terminal/PTY 実 E2E の新規大規模設計が必要になる。 +- Existing Ticket lifecycle / queue semantics を変更しないと達成できない。 + +Validation: +- Focused Panel startup / fixture / snapshot tests。 +- Relevant `cargo test` / `cargo check`。 +- `cargo fmt --check`。 +- `git diff --check`。 +- `nix build .#yoi` は dependency/Cargo.lock/package-source-filter 変更時のみ。 + +Current code map: +- Panel startup metric / rows readiness / test fixtures around matches for `panel_ready`, `rows_rendered`, `startup latency`, dashboard fixture readiness. +- Likely crates: `crates/tui` and related integration/E2E harness files. +- Avoid unrelated Plugin permission grant worktree and root/original workspace. + +Critical risks / reviewer focus: +- Metric rename/additionが実際の UX readiness を測らず名前だけ変えていないか。 +- Fixture が live-like で、Ticket/Pod/claim など dashboard content を代表しているか。 +- Slow-source breakdown が regression triage に使える bounded output か。 +- Startup performance 改善が semantics を壊す shortcut ではないか。 +- Existing Panel behavior / queue semantics / row selection semantics を accidental に変更していないか。 + +Next action: +- `queued -> inprogress` を記録し、Orchestrator worktree の tracked Ticket records を commit してから、専用 implementation worktree を作成し Coder Pod を narrow write scope で起動する。 + +--- + + + +## State changed + +Routing decision と accepted implementation plan を記録済み。Ticket body/thread、relations、OrchestrationPlan、関連 Ticket、Orchestrator worktree、visible Pods、既存 branch/worktree を確認し、blocking relation / conflict / missing planning decision は見つからなかった。Panel startup dashboard-content-ready work は既存 Plugin permission grants work と主対象が異なり、別 worktree/branch/scope で並行可能なため、implementation side effects の前に acceptance を記録する。 + ---