2.8 KiB
2.8 KiB
| title | state | created_at | updated_at | assignee | readiness | risk_flags | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Panel E2E に shell Enter 起動経路の dashboard readiness 計測を追加する | closed | 2026-06-18T16:02:56Z | 2026-06-19T05:44:09Z | null | implementation_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_readysnapshot 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_pathE2E を追加した。- 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 約20msin isolated fixture。
- observed: dashboard content ready 約
cargo test -p yoi-e2e --features e2e --test panelcargo check -p yoi-e2e -p yoi -p tui --features tui/e2e-testcargo fmt --checkgit 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 基準で計測・改善する。