yoi/.yoi/tickets/00001KVDQH839/item.md

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
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.jsonlaunch_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 の変更。
  • 00001KVDETSN6 — Panel startup latency をユーザー目線の dashboard content ready 基準で計測・改善する。