58 lines
2.8 KiB
Markdown
58 lines
2.8 KiB
Markdown
---
|
|
title: 'Panel E2E に shell Enter 起動経路の dashboard readiness 計測を追加する'
|
|
state: 'closed'
|
|
created_at: '2026-06-18T16:02:56Z'
|
|
updated_at: '2026-06-19T05:44:09Z'
|
|
assignee: null
|
|
readiness: 'implementation_ready'
|
|
risk_flags: ['panel', 'e2e', 'startup-latency', 'shell-launch', 'dashboard-content-ready']
|
|
---
|
|
|
|
## Background
|
|
|
|
既存の Panel dashboard readiness E2E は direct `Command::spawn(yoi panel ...)` から dashboard content ready までを測っていた。ユーザー目線の「Enter した瞬間から実コンテンツが表示されるまで」に近づけるため、isolated fixture は維持しつつ、shell 上で command line を投入して Enter された起動経路を部分的に模した E2E を追加する。
|
|
|
|
この Ticket は live workspace の遅延改善そのものではなく、E2E の起動経路を実利用に近づける追加計測である。
|
|
|
|
## Requirements
|
|
|
|
- PTY 上で `/bin/sh` を起動し、`exec <yoi> panel ...` を command line として送って Enter 相当から測定する。
|
|
- 測定開始点は command line を PTY に送る直前とする。
|
|
- dashboard readiness は既存の `dashboard_content_ready` snapshot matcher を使う。
|
|
- first frame だけ、単一 row だけでは通さない。
|
|
- Isolated fixture / isolated HOME / XDG dirs / runtime dirs は維持する。
|
|
- `YOI_POD_RUNTIME_COMMAND` は tested binary を明示して渡す。
|
|
- Direct spawn E2E は残し、shell-enter path は追加 coverage とする。
|
|
|
|
## Implementation summary
|
|
|
|
- `PanelHarness::spawn_via_shell_enter` を追加した。
|
|
- `/bin/sh` を PTY 上で起動。
|
|
- `exec '<binary>' '<args>'...` を送信。
|
|
- command line送信直前の `Instant` を返す。
|
|
- artifacts `run.json` に `launch_mode: shell_enter_exec` を記録。
|
|
- shell quote helper を追加した。
|
|
- `panel_dashboard_content_ready_from_shell_enter_path` E2E を追加した。
|
|
- Enter相当から first frame / dashboard content ready を測定。
|
|
- expected dashboard snapshot / source breakdown を検証。
|
|
|
|
## Validation
|
|
|
|
- `cargo test -p yoi-e2e --features e2e --test panel panel_dashboard_content_ready_from_shell_enter_path -- --nocapture`
|
|
- observed: dashboard content ready 約 `220ms`, first frame 約 `20ms` in isolated fixture。
|
|
- `cargo test -p yoi-e2e --features e2e --test panel`
|
|
- `cargo check -p yoi-e2e -p yoi -p tui --features tui/e2e-test`
|
|
- `cargo fmt --check`
|
|
- `git diff --check`
|
|
|
|
## Non-goals
|
|
|
|
- Live workspace startup latency の改善。
|
|
- Interactive shell の command lookup / user typing latency の完全再現。
|
|
- User's actual shell rc/profile を読むこと。
|
|
- Panel architecture / lifecycle の変更。
|
|
|
|
## Related work
|
|
|
|
- `00001KVDETSN6` — Panel startup latency をユーザー目線の dashboard content ready 基準で計測・改善する。
|