From a4df975415d0fcdaa11a1317262af7623d3b0e9a Mon Sep 17 00:00:00 2001 From: Hare Date: Sun, 14 Jun 2026 00:47:10 +0900 Subject: [PATCH] ticket: accept e2e binary build followup --- .yoi/tickets/00001KV0TJVN5/item.md | 4 +-- .yoi/tickets/00001KV0TJVN5/thread.md | 53 ++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 2 deletions(-) diff --git a/.yoi/tickets/00001KV0TJVN5/item.md b/.yoi/tickets/00001KV0TJVN5/item.md index 7672ac33..5a84e797 100644 --- a/.yoi/tickets/00001KV0TJVN5/item.md +++ b/.yoi/tickets/00001KV0TJVN5/item.md @@ -1,8 +1,8 @@ --- title: 'E2E harness が最新 yoi binary を自動 build して使うようにする' -state: 'queued' +state: 'inprogress' created_at: '2026-06-13T15:46:07Z' -updated_at: '2026-06-13T15:46:29Z' +updated_at: '2026-06-13T15:47:00Z' assignee: null readiness: 'ready' queued_by: 'yoi ticket' diff --git a/.yoi/tickets/00001KV0TJVN5/thread.md b/.yoi/tickets/00001KV0TJVN5/thread.md index f3cceef2..c793ea0b 100644 --- a/.yoi/tickets/00001KV0TJVN5/thread.md +++ b/.yoi/tickets/00001KV0TJVN5/thread.md @@ -30,4 +30,57 @@ Ticket planning が完了しました。state planning -> ready。 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=` 指定時は override としてその path が使われる。 +- Build command / binary path が artifact または diagnostics から分かる。 +- `cargo fmt --check`、`git 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 を記録する。 + ---