ticket: plan workspace orchestrator workdir tools

This commit is contained in:
Keisuke Hirata 2026-07-16 01:31:01 +09:00
parent 5c8a7f363c
commit ed825db4e9
No known key found for this signature in database
3 changed files with 45 additions and 0 deletions

View File

@ -0,0 +1,38 @@
---
title: 'Workspace Orchestrator-managed workdirs and Worker spawn tools'
state: 'planning'
created_at: '2026-07-15T16:28:09Z'
updated_at: '2026-07-15T16:30:00Z'
assignee: null
---
## 背景
現在の LLM-facing `SpawnWorker` は child Worker の process/tool `cwd`、profile、initial input、delegation scope を扱うが、Workspace Runtime の `WorkingDirectory` 作成・claim・Worker 紐付け・cleanup authority は扱わない。
一方で workspace-server / worker-runtime には `WorkingDirectoryRequest`、`WorkingDirectoryClaim`、browser Worker create API の workdir selection、workdir registry / worker link が既にある。embedded Orchestrator が coder / reviewer などの sibling Worker 群を律するには、raw path / cwd ではなく Workspace backend-managed workdir authority を通して Worker spawn できる tool surface が必要。
## 要件
- 既存 `SpawnWorker` を膨らませず、Workspace backend API 経由で workdir と Worker spawn を扱う Orchestrator 用 tool feature を追加する。
- Orchestrator tool は `WorkspaceClient::Http { workspace_id, base_url }` を必須 authority とし、無い場合は fail closed / not registered にする。
- 最小 tool surface として以下を提供する。
- Workspace-managed working directory の一覧または詳細取得。
- repository id / selector から working directory を作成する操作。
- existing `working_directory_id` / optional `relative_cwd` を指定して Worker を spawn する操作。
- Worker spawn 操作は Workspace backend の safe request schema を使い、raw filesystem path、runtime-internal store path、executable path、socket path、secret-like value を model input として受け取らない。
- Spawn する Worker には profile selector、display/requested name、initial input、acceptance requirement を指定できる。
- Workspace backend は spawn 結果として Worker id、runtime id、console href、working directory summary、diagnostics を返し、workdir registry / worker-workdir link を更新する。
- Orchestrator role/profile だけに mutation-capable tools を出し、Coder / Reviewer などには原則として sibling spawn / workdir create 権限を出さない。
- Ticket orchestration flow からは、Ticket を読んだ後に workdir create/select -> coder/reviewer spawn -> Worker status/output 追跡へ進める形にする。
- `SpawnWorker.cwd` と Workspace `WorkingDirectory` の違いを prompt/tool description で明確にし、cwd は authority ではないことを維持する。
## 受け入れ条件
- embedded Orchestrator Worker から Workspace API 経由で workdir を作成できる。
- embedded Orchestrator Worker から作成済み workdir を指定して sibling Worker を spawn できる。
- Spawn された Worker が Runtime / Workspace backend の worker list と workdir link に現れる。
- raw path を渡す spawn/workdir tool input は schema または validation で拒否される。
- `WorkspaceClient::Http` を持たない Worker では Orchestrator workspace mutation tools が登録されない、または実行時に fail closed する。
- 既存 `SpawnWorker` の local delegation behavior は壊れない。
- worker-runtime / workspace-server / worker の該当 tests と `nix build .#yoi` が通る。

View File

@ -0,0 +1,7 @@
<!-- event: create author: "yoi ticket" at: 2026-07-15T16:28:09Z -->
## 作成
LocalTicketBackend によって作成されました。
---