From f467a77f6efdeb64b8c2e345401276ddb0caf886 Mon Sep 17 00:00:00 2001 From: Hare Date: Sun, 14 Jun 2026 01:56:31 +0900 Subject: [PATCH] ticket: create e2e tmp isolation followup --- .yoi/tickets/00001KV0YK5S0/artifacts/.gitkeep | 0 .../00001KV0YK5S0/artifacts/relations.json | 21 +++++++++ .yoi/tickets/00001KV0YK5S0/item.md | 43 +++++++++++++++++++ .yoi/tickets/00001KV0YK5S0/thread.md | 33 ++++++++++++++ 4 files changed, 97 insertions(+) create mode 100644 .yoi/tickets/00001KV0YK5S0/artifacts/.gitkeep create mode 100644 .yoi/tickets/00001KV0YK5S0/artifacts/relations.json create mode 100644 .yoi/tickets/00001KV0YK5S0/item.md create mode 100644 .yoi/tickets/00001KV0YK5S0/thread.md diff --git a/.yoi/tickets/00001KV0YK5S0/artifacts/.gitkeep b/.yoi/tickets/00001KV0YK5S0/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/.yoi/tickets/00001KV0YK5S0/artifacts/relations.json b/.yoi/tickets/00001KV0YK5S0/artifacts/relations.json new file mode 100644 index 00000000..e0f100ea --- /dev/null +++ b/.yoi/tickets/00001KV0YK5S0/artifacts/relations.json @@ -0,0 +1,21 @@ +{ + "version": 1, + "relations": [ + { + "ticket_id": "00001KV0YK5S0", + "kind": "related", + "target": "00001KSKBP9YG", + "note": "E2E harness first slice の runtime/tmp isolation と cleanup follow-up。", + "author": "orchestrator", + "at": "2026-06-13T16:56:22Z" + }, + { + "ticket_id": "00001KV0YK5S0", + "kind": "related", + "target": "00001KV0TJVN5", + "note": "E2E binary/env isolation follow-up の残課題(runtime/data/workspace isolation and cleanup)を補う。", + "author": "orchestrator", + "at": "2026-06-13T16:56:22Z" + } + ] +} diff --git a/.yoi/tickets/00001KV0YK5S0/item.md b/.yoi/tickets/00001KV0YK5S0/item.md new file mode 100644 index 00000000..94970c9d --- /dev/null +++ b/.yoi/tickets/00001KV0YK5S0/item.md @@ -0,0 +1,43 @@ +--- +title: 'E2E harness を完全な tmp runtime/data/workspace 隔離と cleanup に対応させる' +state: 'queued' +created_at: '2026-06-13T16:56:11Z' +updated_at: '2026-06-13T16:56:31Z' +assignee: null +readiness: 'ready' +queued_by: 'yoi ticket' +queued_at: '2026-06-13T16:56:31Z' +--- + +## 背景 + +E2E harness は `00001KSKBP9YG` / `00001KV0TJVN5` で Panel PTY E2E、最新 `yoi` binary build、tested subprocess の env isolation を導入した。しかし、ユーザーから `yoi-orchestrator-orchestrator` / `workspace-orchestrator` などの Pod/worktree artifact が出現したとの報告があり、host runtime / Pod registry / worktree artifact isolation と cleanup がまだ十分に証明されていない。 + +既知の問題: +- 初期 E2E は `env_clear()` 前に `XDG_RUNTIME_DIR` など host env を継承し得た。 +- Fixture は `workspace` / `workspace-orchestrator` の Pod metadata を作るが、これは fixture-local でなければならない。 +- 現在の env isolation は host env leak を防ぐが、E2E が完全に clean な tmp runtime/data/workspace で動き、実行後に cleanup することを明示的に保証・検証していない。 + +## 要件 + +- E2E は毎回完全に clean な temporary environment を作って実行する。 +- Workspace / HOME / XDG_DATA_HOME / XDG_STATE_HOME / XDG_CONFIG_HOME / runtime dir / artifacts root を fixture ごとに分離する。 +- Tested `yoi` subprocess は host runtime / Pod registry / session / worktree / data dir を見ない。 +- Fixture で作る Pod metadata(例: `workspace`, `workspace-orchestrator`)は fixture-local であり、host/global registry に出ない。 +- 実行後、fixture runtime/data/workspace/temp dirs は成功・失敗に関係なく cleanup される。失敗時に必要な artifact は `target/e2e-artifacts/...` にコピーしてから cleanup する。 +- Cleanup policy / fixture root / runtime dir / data dir / removed paths を artifact に記録する。 +- 既存の binary provider、env credential isolation、mouse capture tracking、quit pending barrier を壊さない。 + +## 受け入れ条件 + +- `cargo test -p yoi-e2e --features e2e --test panel -- --nocapture` が clean tmp env を使い、終了後に fixture temp root を残さない。 +- E2E artifact から fixture workspace/data/runtime paths と cleanup result が確認できる。 +- Test または assertion により、Panel が host live Pods / host runtime registry を見ていないことを確認する。 +- Fixture-created `workspace-orchestrator` 等が fixture-local であり、cleanup 後に temp root ごと消えることを確認する。 +- Host `XDG_RUNTIME_DIR` などを設定した状態でも tested `yoi` は fixture runtime だけを見る。 +- `cargo fmt --check`、`git diff --check`、関連 `cargo check` / E2E tests が pass する。 + +## 関連 + +- `00001KSKBP9YG`: E2E harness first slice。 +- `00001KV0TJVN5`: E2E binary provider / env isolation follow-up。 diff --git a/.yoi/tickets/00001KV0YK5S0/thread.md b/.yoi/tickets/00001KV0YK5S0/thread.md new file mode 100644 index 00000000..4431322b --- /dev/null +++ b/.yoi/tickets/00001KV0YK5S0/thread.md @@ -0,0 +1,33 @@ + + +## 作成 + +LocalTicketBackend によって作成されました。 + +--- + + + +## Intake summary + +ユーザーが E2E を完全に clean な tmp environment で実行し、毎回 cleanup することを明示した。要件は workspace/HOME/XDG/runtime/artifacts の fixture 分離、host Pod/runtime registry 非参照、fixture-created Pod metadata の fixture-local 化、成功/失敗時 cleanup と artifact 記録。 + +--- + + + +## State changed + +Ticket planning が完了しました。state planning -> ready。 + + +--- + + + +## State changed + +Ticket を `yoi ticket` が queued にしました。 + + +---