From d62ab6e1de9ec9a3530f29912865fe150be43f44 Mon Sep 17 00:00:00 2001 From: Hare Date: Wed, 24 Jun 2026 19:26:14 +0900 Subject: [PATCH] docs: record worker runtime implementation report --- .../implementation-report-217a4828.md | 37 +++++++++++++++ .yoi/tickets/00001KVTNAY20/item.md | 2 +- .yoi/tickets/00001KVTNAY20/thread.md | 45 +++++++++++++++++++ 3 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 .yoi/tickets/00001KVTNAY20/artifacts/implementation-report-217a4828.md diff --git a/.yoi/tickets/00001KVTNAY20/artifacts/implementation-report-217a4828.md b/.yoi/tickets/00001KVTNAY20/artifacts/implementation-report-217a4828.md new file mode 100644 index 00000000..138ec1de --- /dev/null +++ b/.yoi/tickets/00001KVTNAY20/artifacts/implementation-report-217a4828.md @@ -0,0 +1,37 @@ +# 実装報告: 00001KVTNAY20 + +## 変更概要 + +- `client::spawn` に `PodProcessLaunchConfig` と `PodProcessLaunchOptions` を導入し、低レベルの Pod プロセス起動設定から Ticket role marker を分離した。 +- Ticket role 起動は `TicketRoleLaunchPlan::spawn_options()` 経由で hidden CLI marker を渡す形にし、`TicketRoleLaunchResult` に Run 受理証跡 (`TicketRoleLaunchAcceptanceEvidence`) を追加した。 +- Workspace server の `LocalRuntimeBridge` を `WorkspaceWorkerRuntime` trait の実装として整理し、hosts/workers 一覧、worker lookup、spawn/stop typed request/result、将来の proxy/stream 接続点を型として追加した。 +- Workspace 側の spawn request shape は policy intent ベースにし、browser/API caller から raw `workspace_root` / `cwd` / executable path / raw profile selector を受け取らない形にした。 +- Dashboard/TUI 側の直接 spawn 呼び出しを新しい low-level config/options 分離に追従した。 + +## 変更ファイル + +- `crates/client/src/lib.rs` +- `crates/client/src/spawn.rs` +- `crates/client/src/ticket_role.rs` +- `crates/tui/src/dashboard/mod.rs` +- `crates/tui/src/spawn.rs` +- `crates/workspace-server/src/hosts.rs` +- `crates/workspace-server/src/server.rs` + +## 検証結果 + +- `cargo test -p yoi-workspace-server`: 成功 +- `cargo check -p yoi`: 成功 +- `cd web/workspace && deno task check && deno task build`: 成功 +- `cargo test -p client`: 成功(追加確認) +- `git diff --check`: 成功 + +## コミット + +- 実装コミット: `217a4828d73ab553b5406cc7e22e43b1ec7be48e` + +## 残リスク / 非ゴールとして残したもの + +- `WorkspaceWorkerRuntime::spawn_worker` / `stop_worker` は typed boundary と request/result を用意した段階で、実際の Worker operation UI 完成、stream proxy、remote Host protocol、認可/権限、registry locking までは実装していない。 +- low-level launcher は trusted in-process resolver からの追加 CLI args を受け取れるが、Ticket role などのドメイン概念は `PodProcessLaunchConfig` からは除外している。 +- TS 型生成やフロントエンド API surface の追加は本 Ticket の非ゴールとして変更していない。 diff --git a/.yoi/tickets/00001KVTNAY20/item.md b/.yoi/tickets/00001KVTNAY20/item.md index 25a42fe4..920a496f 100644 --- a/.yoi/tickets/00001KVTNAY20/item.md +++ b/.yoi/tickets/00001KVTNAY20/item.md @@ -2,7 +2,7 @@ title: 'Abstract Workspace Worker runtime spawn operations' state: 'inprogress' created_at: '2026-06-23T16:34:39Z' -updated_at: '2026-06-23T19:33:48Z' +updated_at: '2026-06-24T10:26:04Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-06-23T19:25:09Z' diff --git a/.yoi/tickets/00001KVTNAY20/thread.md b/.yoi/tickets/00001KVTNAY20/thread.md index 83228b4d..a92df08c 100644 --- a/.yoi/tickets/00001KVTNAY20/thread.md +++ b/.yoi/tickets/00001KVTNAY20/thread.md @@ -166,4 +166,49 @@ Next action: - Coder Pod/profile/provider startup issue の解消後に同じ worktree/branch で multi-agent workflow を再開する。 - あるいは人間が明示的に Orchestrator direct implementation を許可する場合のみ、Orchestrator がこの child worktree で実装へ進む。 +--- + + + +## Implementation report + +# 実装報告: 00001KVTNAY20 + +## 変更概要 + +- `client::spawn` に `PodProcessLaunchConfig` と `PodProcessLaunchOptions` を導入し、低レベルの Pod プロセス起動設定から Ticket role marker を分離した。 +- Ticket role 起動は `TicketRoleLaunchPlan::spawn_options()` 経由で hidden CLI marker を渡す形にし、`TicketRoleLaunchResult` に Run 受理証跡 (`TicketRoleLaunchAcceptanceEvidence`) を追加した。 +- Workspace server の `LocalRuntimeBridge` を `WorkspaceWorkerRuntime` trait の実装として整理し、hosts/workers 一覧、worker lookup、spawn/stop typed request/result、将来の proxy/stream 接続点を型として追加した。 +- Workspace 側の spawn request shape は policy intent ベースにし、browser/API caller から raw `workspace_root` / `cwd` / executable path / raw profile selector を受け取らない形にした。 +- Dashboard/TUI 側の直接 spawn 呼び出しを新しい low-level config/options 分離に追従した。 + +## 変更ファイル + +- `crates/client/src/lib.rs` +- `crates/client/src/spawn.rs` +- `crates/client/src/ticket_role.rs` +- `crates/tui/src/dashboard/mod.rs` +- `crates/tui/src/spawn.rs` +- `crates/workspace-server/src/hosts.rs` +- `crates/workspace-server/src/server.rs` + +## 検証結果 + +- `cargo test -p yoi-workspace-server`: 成功 +- `cargo check -p yoi`: 成功 +- `cd web/workspace && deno task check && deno task build`: 成功 +- `cargo test -p client`: 成功(追加確認) +- `git diff --check`: 成功 + +## コミット + +- 実装コミット: `217a4828d73ab553b5406cc7e22e43b1ec7be48e` + +## 残リスク / 非ゴールとして残したもの + +- `WorkspaceWorkerRuntime::spawn_worker` / `stop_worker` は typed boundary と request/result を用意した段階で、実際の Worker operation UI 完成、stream proxy、remote Host protocol、認可/権限、registry locking までは実装していない。 +- low-level launcher は trusted in-process resolver からの追加 CLI args を受け取れるが、Ticket role などのドメイン概念は `PodProcessLaunchConfig` からは除外している。 +- TS 型生成やフロントエンド API surface の追加は本 Ticket の非ゴールとして変更していない。 + + ---