yoi/.yoi/tickets/00001KV0TJVN5/thread.md

3.9 KiB

作成

LocalTicketBackend によって作成されました。


Intake summary

ユーザーが cargo build による最新 yoi binary 入手を E2E harness default にする方針を明示した。要件・受け入れ条件は、YOI_E2E_BIN override を残しつつ、通常 E2E 実行では harness が cargo build -p yoi --features e2e-test --bin yoi を実行し、生成 binary を直接 PTY spawn すること。


State changed

Ticket planning が完了しました。state planning -> ready。


State changed

Ticket を yoi ticket が queued にしました。


Decision

Routing decision: implementation_ready

Reason:

  • ユーザーが方針を明示した: cargo run を PTY の process-under-test にせず、E2E harness が cargo build -p yoi --features e2e-test --bin yoi を実行し、生成された binary を直接 spawn する。
  • Ticket は queued で、要件・受け入れ条件は具体的。blocking relation はなく、既存 E2E harness の小さな follow-up として実装可能。
  • 既存 production/non-production boundary、mouse capture check、quit pending barrier は維持すべき invariant として明記済み。

Evidence checked:

  • Ticket body / relation to 00001KSKBP9YG
  • Existing E2E harness code: tests/e2e/src/lib.rs::yoi_binary() currently prefers YOI_E2E_BIN, then infers target/debug/yoi, but does not build it。
  • Orchestrator worktree is clean。

IntentPacket:

Intent:

  • cargo test -p yoi-e2e --features e2e ... を任意タイミングで実行しても、harness が最新 source から E2E 用 yoi binary を build して直接 PTY spawn するようにする。

Binding decisions / invariants:

  • cargo run を process-under-test にしない。
  • YOI_E2E_BIN explicit override は残してよい。
  • default path は harness 内 cargo build -p yoi --features e2e-test --bin yoi + direct binary spawn。
  • production/non-production boundary と e2e-test feature gating を壊さない。
  • mouse capture tracking / quit pending barrier を壊さない。

Requirements / acceptance criteria:

  • 事前 manual build なしに cargo test -p yoi-e2e --features e2e --test panel -- --nocapture が pass する。
  • YOI_E2E_BIN=<path> 指定時は override としてその path が使われる。
  • Build command / binary path が artifact または diagnostics から分かる。
  • cargo fmt --checkgit diff --check、関連 checks が pass。

Implementation latitude:

  • OnceLock 等で同一 test process 内の build を 1 回にまとめてよい。
  • Workspace root detection は CARGO_MANIFEST_DIR parent traversal、cargo metadata、または robust helper のいずれでもよい。
  • Cargo executable は CARGO env を尊重する。

Escalate if:

  • workspace/package layout 上、E2E test process 内から cargo build するのが大きな cyclic/build-system 問題を起こす場合。
  • Nix/package source filter 等の追加変更が必要になる場合。

State changed

Ticket evidence、existing E2E harness code map、Orchestrator worktree clean state を確認した。ユーザーが明示的に修正を依頼しており、blocking relation はない。実装 side effect の前に inprogress acceptance を記録する。