From 39f5fffb2b32987f765594b1381d2c7a7634483f Mon Sep 17 00:00:00 2001 From: Hare Date: Sun, 14 Jun 2026 02:32:17 +0900 Subject: [PATCH] ticket: approve e2e tmp isolation --- .yoi/tickets/00001KV0YK5S0/item.md | 2 +- .yoi/tickets/00001KV0YK5S0/thread.md | 32 ++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/.yoi/tickets/00001KV0YK5S0/item.md b/.yoi/tickets/00001KV0YK5S0/item.md index 7cc4438b..dbc488ed 100644 --- a/.yoi/tickets/00001KV0YK5S0/item.md +++ b/.yoi/tickets/00001KV0YK5S0/item.md @@ -2,7 +2,7 @@ title: 'E2E harness を完全な tmp runtime/data/workspace 隔離と cleanup に対応させる' state: 'inprogress' created_at: '2026-06-13T16:56:11Z' -updated_at: '2026-06-13T16:56:58Z' +updated_at: '2026-06-13T17:31:57Z' assignee: null readiness: 'ready' queued_by: 'yoi ticket' diff --git a/.yoi/tickets/00001KV0YK5S0/thread.md b/.yoi/tickets/00001KV0YK5S0/thread.md index a5a4eb29..86c02857 100644 --- a/.yoi/tickets/00001KV0YK5S0/thread.md +++ b/.yoi/tickets/00001KV0YK5S0/thread.md @@ -87,3 +87,35 @@ Escalate if: Ticket evidence、related E2E tickets、existing code map、Orchestrator worktree clean state を確認した。ユーザーが明示的に修正を依頼しており、blocking relation はない。実装 side effect の前に inprogress acceptance を記録する。 --- + + + +## Review: approve + +## Review: approve + +外部 Reviewer Pod 起動を試みたが、この Orchestrator の現在の delegation scope では child launch validation が要求する root workspace read grant を再委譲できず、Reviewer Pod を起動できなかった。そのため Orchestrator が実装 diff・validation・artifact を直接確認した。 + +確認した実装: +- `tests/e2e/src/lib.rs` に per-scenario `FixtureWorkspace` / `TempDir` 管理を追加。 +- fixture root 配下に `workspace`、`home`、`data`、`state`、`config`、`runtime` を作り、tested `yoi` には `env_clear()` + fixture-local `XDG_RUNTIME_DIR` を渡す。 +- `PanelHarness::spawn` と fixture setup command は host `XDG_RUNTIME_DIR` / host provider env を継承しない。 +- fixture snapshot / cleanup report / fixture metadata を `target/e2e-artifacts//` に保存し、fixture temp root は cleanup 後に存在しないことを記録する。 +- tests は hostile host `XDG_RUNTIME_DIR` を設定した状態でも fixture runtime policy を使う。 +- existing binary provider、mouse capture guard、quit pending barrier、env credential isolation は維持されている。 + +Validation performed by Orchestrator: +- `cargo fmt --check`: PASS +- `git diff --check`: PASS +- `cargo check -p yoi-e2e --all-targets --features e2e`: PASS +- `XDG_RUNTIME_DIR=/tmp/yoi-e2e-host-runtime-leak-test OPENAI_API_KEY=host-secret ANTHROPIC_API_KEY=host-secret GEMINI_API_KEY=host-secret cargo test -p yoi-e2e --features e2e --test panel -- --nocapture`: PASS +- artifact spot-check: recent `cleanup.json` records `cleanup_success: true` and `fixture_root_exists_after: false`。 +- `target/e2e-tmp` の直下に residual fixture temp root が残っていないことを確認。 + +Notes: +- Failure artifact は fixture snapshot を保存するため、host への leak ではなく `target/e2e-artifacts` に診断情報が残る。 +- Fixture-created `workspace` / `workspace-orchestrator` Pod metadata は fixture data dir / snapshot に閉じる。host runtime/data registry を読む経路は fixture `XDG_RUNTIME_DIR` + env clear により遮断されている。 + +Decision: approve. + +---