diff --git a/.yoi/objectives/00001KVJPT2PP/item.md b/.yoi/objectives/00001KVJPT2PP/item.md index 0f90a21d..a6693aa8 100644 --- a/.yoi/objectives/00001KVJPT2PP/item.md +++ b/.yoi/objectives/00001KVJPT2PP/item.md @@ -2,7 +2,7 @@ title: "Team workspace control plane and runtime architecture" state: "active" created_at: "2026-06-20T14:26:29Z" -updated_at: "2026-07-03T18:05:00Z" +updated_at: "2026-07-07T12:40:00Z" linked_tickets: ["00001KVMFFYVX", "00001KWMBAA6V"] --- @@ -27,7 +27,7 @@ Yoi を、単一のローカル開発ディレクトリで動くエージェン - Repository provider: Repository の種類ごとの実装。Git、local filesystem、object store、artifact store、将来の non-Git VCS など。 - RepositorySelector: Repository provider に渡す未解決の地点指定。branch/tag/PR/revspec/bookmark/revset/path@revision/object version/latest など provider-specific な symbolic / mutable / query-like locator であり、それ自体は再現性の authority ではない。 - RepositoryPoint: RepositorySelector をある時点で解決した具体地点。Git commit/tree、Mercurial changeset、SVN revision、object store version/manifest digest、file snapshot など provider ごとの immutable / reproducible point を表し、Artifact/evidence に残す。 -- working directory: Runtime が Worker のために作る作業環境。1 つ以上の RepositoryPoint から materialize される作業用ディレクトリ、container filesystem、sandbox mount の集合であり、Git worktree、clone、sparse checkout などはこれを作る手段である。 +- working directory: Runtime が Worker のために作る作業環境。1 つ以上の RepositoryPoint から materialize される作業用ディレクトリ、container filesystem、sandbox mount の集合であり、Git worktree、clone、sparse checkout などはこれを作る手段である。Browser-facing UI/API では product `Workspace` と混同しないよう、この呼称に寄せる。`Volume` は storage backing の候補名に留め、作業領域そのものの呼称にはしない。 - Ticket: チームで扱う作業単位。目的、要件、判断、議論、完了条件、関係、証跡を持つ。 - Objective: 複数の Ticket を束ねる長期目標や設計方針。 - Artifact: Ticket や Worker 実行に紐づく成果物や証跡。diff、log、validation result、review result、report など。 @@ -178,7 +178,7 @@ Ticket / user intent Control plane は Workspace authority、Ticket target、Repository registry、Actor permission、設定 bundle の正本を持つ。Control plane または Repository provider は RepositorySelector を RepositoryPoint に解決し、どの地点を対象にしたかを evidence に残す。Runtime は RepositoryPoint、materialization policy、sandbox policy、mount/cache/secret policy、Worker config を受け取り、Runtime-local な working directory を確保して Worker を起動する。 -この境界では、Worker は host filesystem path や Repository credential を自分で発見しない。Worker は Runtime が materialize した workspace root、mount、環境変数、tool authority、config bundle だけを見る。Runtime は working directory の lifecycle、cleanup、cache reuse、namespace、quota、sandbox boundary、event collection を管理する。Control plane / Browser-facing API は raw host path、secret、socket、internal runtime path を authority-bearing internals として扱い、必要な evidence だけを Artifact として公開する。 +この境界では、Worker は host filesystem path や Repository credential を自分で発見しない。Worker は Runtime が materialize した working directory root、mount、環境変数、tool authority、config bundle だけを見る。Runtime は working directory の lifecycle、cleanup、cache reuse、namespace、quota、sandbox boundary、event collection を管理する。Control plane / Browser-facing API は raw host path、secret、socket、internal runtime path を authority-bearing internals として扱い、必要な evidence だけを Artifact として公開する。 v0 materializer は existing local root を明示的な working directory として返してよい。ただし型と呼び出し順序は、後で Git worktree、clone、sparse checkout、container filesystem、remote object snapshot、multi-repository mount に置き換えられる形にする。Runtime process 起動時の `--workspace` はこの v0 materializer の legacy bootstrap input であり、Runtime identity や long-term workspace binding ではない。 diff --git a/.yoi/objectives/00001KWW44EXK/item.md b/.yoi/objectives/00001KWW44EXK/item.md index 3329c9d0..b46d151c 100644 --- a/.yoi/objectives/00001KWW44EXK/item.md +++ b/.yoi/objectives/00001KWW44EXK/item.md @@ -2,7 +2,7 @@ title: "Runtime working directory materialization and sandboxed agent environments" state: "active" created_at: "2026-07-06T16:28:12Z" -updated_at: "2026-07-06T16:28:12Z" +updated_at: "2026-07-07T12:40:00Z" linked_tickets: ["00001KWPC13WQ", "00001KWMBAA6V"] --- @@ -10,7 +10,7 @@ linked_tickets: ["00001KWPC13WQ", "00001KWMBAA6V"] Runtime が Worker ごとに安全で安価な作業環境を用意できるようにする。Yoi の Runtime は、単に既存ディレクトリで Worker process を起動する launcher ではなく、RepositoryPoint から working directory を materialize し、sandbox / mount / cache / cleanup / evidence を管理する実行基盤になる。 -この Objective の中心は、Worktree ライクな作業ディレクトリ管理、Repository cache、working directory allocation、sandboxed agent environment の境界を設計し、将来的に 1 つの Runtime が複数 Workspace / Repository の Worker を抱えられるようにすることである。 +この Objective の中心は、Worker 用 working directory の materialization、Repository cache、working directory allocation、sandboxed agent environment の境界を設計し、将来的に 1 つの Runtime が複数 Workspace / Repository の Worker を抱えられるようにすることである。 初期実装では Git/local repository を主対象にしてよい。ただし設計は Git worktree 固定にしない。Git worktree、bare object cache、sparse checkout、copy-on-write snapshot、reflink copy、APFS clonefile、btrfs snapshot、overlay filesystem、container filesystem、remote object snapshot は、すべて working directory materialization strategy の候補として扱う。 @@ -34,7 +34,7 @@ Yoi は Workspace / Repository / Runtime を分ける方針になっている。 - Runtime root: Runtime が自身の store、cache、Worker metadata、working directory allocation を管理する root。長期的には `~/.yoi/runtimes//` 配下など、Workspace backend store とは別に置く。 - Repository cache: Runtime-local の共有 source/cache。Git なら bare mirror / object cache / packfile cache など。重く、長寿命で、複数 Worker allocation から共有される。 -- working directory: Worker ごとの作業環境。短寿命で、Worker が読み書きする root / mounts / scratch / overlay を含む。 +- working directory: Worker ごとの作業環境。短寿命で、Worker が読み書きする root / mounts / scratch / overlay を含む。Browser-facing UI/API では `Workspace` と混同しないよう、この呼称に寄せる。`Volume` は storage backing の候補名であり、この作業領域そのものの呼称にはしない。 - Materialization strategy: RepositoryPoint から working directory を作る実装戦略。Git detached worktree、sparse checkout、CoW snapshot、reflink copy、overlay、container filesystem など。 - WorkingDirectoryAllocation: Runtime が払い出した作業環境の record。allocation id、worker id、workspace id、repository point、materializer kind、root、mounts、cleanup policy、status を持つ。 - Sandbox policy: Worker が見られる filesystem、network、process、secret、tool authority の境界を表す policy。 @@ -128,7 +128,7 @@ Git の場合でも materialization strategy は複数あり得る。 - overlay filesystem - external tool backed snapshot, e.g. Rift-like CoW workspace creation -### 3. Repository cache と Worker workspace を分離する +### 3. Repository cache と Worker working directory を分離する full clone を Worker ごとに作らない。重い source/object data は Runtime-local repository cache に集約し、Worker ごとの working directory は cheap allocation にする。 @@ -193,7 +193,7 @@ Worker が自分で発見してはいけないもの: - `.yoi` authority-bearing internals - raw credentials - Runtime socket/store/cache internals -- sibling Worker workspaces +- sibling Worker working directories Sandbox v0 は strong isolation でなくてもよい。ただし型と lifecycle は、後で container sandbox、namespace, mount filtering, network policy, secret boundary に拡張できる形にする。 @@ -228,7 +228,7 @@ WorkingDirectoryAllocation ### 7. Heavy regenerable artifacts は policy で除外または cache 化する -Worker workspace creation では、`node_modules`, `target`, `.venv`, framework cache, dist, build, coverage などを無条件に full copy しない。 +Worker working directory creation では、`node_modules`, `target`, `.venv`, framework cache, dist, build, coverage などを無条件に full copy しない。 Materialization policy は以下を持てるようにする。